我有一个查询和一些参数如下,
String query = "SELECT * FROM table_name ORDER BY ? LIMIT ? ";
//I am creating this 'sortString' on runtime based on some user inputs
String sortString = " column1 ASC, column 2 ASC ";
int count =5;
我正在调用jdbcTemplate方法,如下所示,
List<Map<String, Object>> rows = getJdbcTemplate().queryForList(query, sortString, count);
jdbcTemplate实际使用的查询如下,
SELECT * FROM table_name ORDER BY ' column1 ASC, column 2 ASC ' LIMIT 5
现在,ORDER BY子句不起作用,因为标准是由'jdbcTemplate'放在''里面的。如何在没有jdbcTemplate默认添加“'”的情况下将字符串添加到查询中。
我想要查询,
SELECT * FROM table_name ORDER BY column1 ASC, column 2 ASC LIMIT 5
答案 0 :(得分:0)
当您动态生成查询的整个部分时,不能使用预准备语句。预准备语句中的?
始终代表值。
//我正在创建'sortString'
String sortString = " column1 ASC, column 2 ASC ";
String query =“SELECT * FROM table_name ORDER By”+ sortString +“LIMIT?”;