我正在使用MySQL编写一个简单的JDBC程序但是Whats'错误的一行。我没有看到任何错误,但下面提到的行在运行程序时显示错误
代码 -
ResultSet recs = psmt.executeQuery("select * from item_master where catid = "+id1 +"and des = '" +sString+"';");
错误 -
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在' des =' LG计算机附近使用' '在第1行
我还在MySQL中测试了这个查询并获得了输出 -
select * from item_master where catid = 2 and des = 'LG computer';
但Java不允许我执行此行。我也试过LIKE
select * from item_master where catid = 2 and des LIKE 'LG computer';
答案 0 :(得分:2)
您在int
之后错过了一个空格,并且您在查询中不需要分号。像,
"select * from item_master where catid = "+id1 +" and des = '" +sString+"'"
或强>
String.format("select * from item_master where catid = %d and des = '%s'",
id1, sString);
或,我的偏好,使用PreparedStatement
String query = "select * from item_master where catid = ? and des = ?";
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, id1);
ps.setString(2, sString);
try (ResultSet rs = ps.executeQuery()) {
// ...
}
} catch (SQLException e) {
e.printStackTrace();
}