java mysql executequery_statement.executequery()在mysql中执行select命令时抛出java.sql.sqlsyntaxErrorException...

我有一个使用JDBCAPI从mysql db表中获取记录的方法。

我一直使用的命令是:

"SELECT column_1, column_2, ... FROM table;"

列名称以arraylist的形式提供给方法。正在使用StringBuilder基于列和表名称构造查询。

使用createStation()执行构造的查询时,将引发:

"java.sql.SQLSyntaxErrorException: 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 from $tableName' at line 1"

这是方法的完整代码:

public ObservableList> getTableData(String tableName, List selectedParams, int rowCount) {

try {

StringBuilder query = new StringBuilder("select ");

for (int i = 0; i < selectedParams.size(); i++) {

query.append(selectedParams.get(i)).append(", ");

}

query.append("\b\b from ").append(tableName).append(" limit ").append(rowCount);

System.out.println("query:" + query);

ObservableList> rows;

try (ResultSet rset = st.executeQuery(query.toString())) {

ResultSetMetaData rsmd = rset.getMetaData();

rows = FXCollections.observableArrayList();

while (rset.next()) {

ObservableList row = FXCollections.observableArrayList();

int count = 1;

while (count <= rsmd.getColumnCount()) {

row.add(rset.getString(count));

count++;

}

rows.add(row);

}

}

rows.forEach((row) -> {

System.out.println(row);

});

return rows;

} catch (SQLException ex) {

Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);

}

return null;

}

运行代码时,生成的查询表单打印语句如下所示:

"query:select territory from offices"

我已经直接对数据库和另一个简单的JDBC程序测试了这个查询,它们都运行良好。除了在这个方法中。请帮忙。

----------编辑:忘记粘贴异常消息:-----------

java.sql.SQLSyntaxErrorException: 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 from offices limit 10' at line 1

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)

at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)

at com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:1218)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值