我正在使用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();
}
这里,打印语句根据需要提供输出。我想使用queryForList
,因为它适合我们的数据格式要求。如何确定在queryForList
中保持顺序?
您不能将订单作为参数传递-ORDER BY
? ?这将导致ORDER BY "firstSort", "secondSort"
,而不是ORDER BY firstSort, secondSort
。