我正在使用queryForList
方法获取以下sql的数据。
String sql = "select * from my_table ORDER BY ? ? LIMIT ?, ?";
return jdbcTemplate.queryForList(sql,new Object[]{param1,param2,
param3,param4});
我可以看到订单在返回数据时被更改。要确认,我尝试使用简单的JDBC,如下所示
try {
Connection conn = jdbcTemplate.getDataSource().getConnection();
//Sample values param1 -> field1, param2 -> asc/desc, param3 -> 0, param4 -> 25
String sql = "select * from my_table ORDER BY "+param1+" "+param2+" LIMIT "+param3+", "+param4;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println("Name = "+rs.getString("field1")+" Type = "+rs.getString("field2"));
}
} catch (SQLException e) {
e.printStackTrace();
}
这里,print语句根据需要给出输出。我想使用queryForList
,因为它符合我们的数据格式要求。如何确保订单保留在queryForList
?
答案 0 :(得分:0)
您不能将订单作为参数传递-ORDER BY
? ?这将产生ORDER BY "firstSort", "secondSort"
而不是ORDER BY firstSort, secondSort
。