使用java mysql中的多个参数准备语句的问题

时间:2015-01-13 14:12:30

标签: java mysql jdbc

我正在使用以下代码段从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

我的代码段中是否有错误?我不能像上面那样使用多个参数吗?

1 个答案:

答案 0 :(得分:3)

LIMIT子句需要int

prepStmt.setInt(2, Integer.parseInt(batchSize));
MySQL文档中的

SELECT读取(部分)

  

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,这些参数必须都是非负整数常量(使用预准备语句时除外)。