JdbcTemplate queryForList更改数据库顺序

问题描述 投票:0回答:1

我正在使用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中保持顺序?

spring spring-jdbc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.