JdbcTemplate queryForList更改数据库顺序

时间:2017-10-22 14:47:00

标签: spring spring-jdbc

我正在使用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

1 个答案:

答案 0 :(得分:0)

您不能将订单作为参数传递-ORDER BY? ?这将产生ORDER BY "firstSort", "secondSort"而不是ORDER BY firstSort, secondSort