我有一个名为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'%'附近使用
2 回答
您有一个SQL语法错误:
你的要求应该是:
您不能直接使用
in
作为列名,因为它是保留关键字 . 如果你想使用它,你必须使用反引号来逃避它:运算符是
like
,而不是in like
. 如果您的列实际上名为"in",则应该将其转义: