我正在使用以下代码段从select查询中检索有限数量的raw。
String query="SELECT * FROM smsmessage WHERE recipient = ? LIMIT ?";
PreparedStatement prepStmt = conn.prepareStatement(query);
prepStmt.setString(1,shortCode);
prepStmt.setString(2,batchSize);
ResultSet rs=prepStmt.executeQuery();
但它给了我以下问题
ERROR {com.axiata.plugin.ReceiveSMS.ReceiveSMSNotification} - MySQL exception
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near ''2'' at line 1
我的代码段中是否有错误?我不能像上面那样使用多个参数吗?
答案 0 :(得分:3)
LIMIT
子句需要int
。
prepStmt.setInt(2, Integer.parseInt(batchSize));
MySQL文档中的 SELECT
读取(部分)
LIMIT
子句可用于约束SELECT
语句返回的行数。LIMIT
需要一个或两个数字参数,这些参数必须都是非负整数常量(使用预准备语句时除外)。