在MySQL中的jdbcTemplate调用中添加字符串作为查询的一部分

时间:2015-05-25 15:46:57

标签: mysql jdbctemplate querystringparameter

我有一个查询和一些参数如下,

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

1 个答案:

答案 0 :(得分:0)

当您动态生成查询的整个部分时,不能使用预准备语句。预准备语句中的?始终代表值。  //我正在创建'sortString'

String sortString = " column1 ASC, column 2 ASC "; 

String query =“SELECT * FROM table_name ORDER By”+ sortString +“LIMIT?”;