JdbcTemplate queryForList, изменяющий порядок базы данных

Я использую 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 ответов

Вы не можете передать заказ в качестве параметров - ORDER BY?? Это приведет кORDER BY "firstSort", "secondSort"скорее, чем ORDER BY firstSort, secondSort.

Другие вопросы по тегам