我有一个名为Servicos.java的JInternalFrame,代码如下:
MySqlDAO sqlDAO = new MySqlDAO();
Connection conexao = null;
PreparedStatement pst = null;
ResultSet rs = null;
public Servicos() {
initComponents();
conexao = sqlDAO.conector();
}
private void procurar(){
String sql = "select * from servicos where in like ?";
try{
pst = conexao.prepareStatement(sql);
pst.setString(1, in.getText()+"%");
rs=pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
e.printStackTrace();
}
}
private void inKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
procurar();
}
当我运行应用程序时,出现以下错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与mysql服务器版本相对应的手册,在第1行的“in like”%”附近使用正确的语法
最佳答案
SQL语法错误出现在:
select * from servicos where in like ?
您的请求应该是:
select * from servicos where <columnName> like ?
不能将
in
直接用作列名,因为它是保留关键字。如果要使用它,必须用反引号将其转义:select * from servicos where `in` like ?