这是我的代码:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String s1=new String(jTextField2.getText());
String s2=new String(jTextField3.getText());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:Star");
String sql = "insert into Star(USERNAME, PASSWORD) values ("+s1+","+s2+")";
PreparedStatement psm = conn.prepareStatement(sql);
psm.setString(1,s1);
psm.setString(2, s2);
int i= psm.executeUpdate();
if(i==1){
JOptionPane.showConfirmDialog(jButton1, "增加成功");
}
else{
JOptionPane.showConfirmDialog(jButton1, "增加失败!");
}
psm.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
运行时出现错误如下:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
String s1=new String(jTextField2.getText());
String s2=new String(jTextField3.getText());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:Star");
String sql = "insert into Star(USERNAME, PASSWORD) values ("+s1+","+s2+")";
PreparedStatement psm = conn.prepareStatement(sql);
psm.setString(1,s1);
psm.setString(2, s2);
int i= psm.executeUpdate();
if(i==1){
JOptionPane.showConfirmDialog(jButton1, "增加成功");
}
else{
JOptionPane.showConfirmDialog(jButton1, "增加失败!");
}
psm.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
运行时出现错误如下:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
PreparedStatement psm = conn.prepareStatement(sql);
psm.setString(1, s1);
psm.setString(2, s2);
和
psm.setString(1,s1);
psm.setString(2, s2);
有冲突。要么去掉
psm.setString(1,s1);
psm.setString(2, s2);要么更改
String sql = "insert into Star(USERNAME, PASSWORD) values ("+s1+","+s2+")";
为
String sql = "insert into Star(USERNAME, PASSWORD) values (?,?)";