java将表连接到jtextbox
我试图连接jtextbox中的每个表字段,但当我运行此代码时,它会显示语法错误。我正在使用sqlite和netbeans,希望您能帮助我
try{
String sql="Select * From account where id=txtId.getText() AND fname=txtFname.getText() AND lname=txtLname.getText() AND username=txtUsername.getText() AND password=txtPassword.getText()";
pst=conn.prepareStatement(sql);
pst.setString(1, txtId.getText());
pst.setString(2, txtFname.getText());
pst.setString(3, txtLname.getText());
pst.setString(4, txtUsername.getText());
pst.setString(5, txtPassword.getText());
pst.execute();
rs.close();
pst.close();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,e);
}
finally{
try{
rs.close();
pst.close();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,e);
}
}
# 1 楼答案
尝试放置占位符(?)在你的询问中
您正在提供值,但查询中没有占位符:
pst.setString(1, txtId.getText());
Edit1:回复您的评论
# 2 楼答案
您正在字符串文本中进行方法调用。最简单的方法是将方法调用移出字符串,并在变量中获取返回值。然后,可以将它们附加到查询字符串中
正确的方法是使用PreparedStatement。它是为这种情况而设计的。教程:http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
更新:
由于您使用的是PreparedStatement,请将查询中的任何未知值替换为。然后,您可以稍后使用适当的setter设置它们