在 Java 中使用带有准备语句的 LIMIT 命令的 MySQL 语法错误

4 java mysql jdbc prepared-statement sql-limit

我正在用 Java 编写代码,每次运行此代码时,我都想从 MySQL 表中提取下一行。第二次运行此代码时就是这样。

String timh1 = "1";
String timh2 = "2";
PreparedStatement st = null;
String sqlGrammes = "SELECT SURNAME ,KATHGORIA, AFM , NAME FROM EMPLOYEE LIMIT ?,? ";
try {
    st = connection.prepareStatement(sqlGrammes);
    st.setString(1, timh1);
    st.setString(2, timh2);
Run Code Online (Sandbox Code Playgroud)

但它向我展示了这个错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“1”、“2”附近使用的正确语法

Mur*_*nik 6

limit接受整数参数,所以你应该使用ints,而不是Strings:

int timh1 = 1;
int timh2 = 2;
PreparedStatement st = null;
String sqlGrammes = "SELECT SURNAME ,KATHGORIA, AFM , NAME FROM EMPLOYEE LIMIT ?,? ";
try {
    st = connection.prepareStatement(sqlGrammes);
    st.setInt(1, timh1); // notice the setInt
    st.setInt(2, timh2); // here too
Run Code Online (Sandbox Code Playgroud)