java - 使用 jdbctemplate 构建 sql 字符串的建议

标签 java spring jdbctemplate

我目前有这个:

MyObject myObject = getJdbcTemplate().queryForObject("select * from my_objects where id = ?",
                new Object[]{new Integer(id)},
                new MyObjectRowMapper());

现在在我的方法中我想传递一个枚举:

SortOrder.ASC
SortOrder.DESC

所以它要么是:

ORDER BY ID ASC

ORDER BY ID DESC

那么在 sql 字符串中,我是否只需添加另一个 '?'或者我是否必须构建如下字符串:

"select * from abc ORDER BY ID " + sortOrder;

有更好的方法吗?

最佳答案

你必须使用第二种方式。准备好的语句不仅仅是“用我传递的字符串查询替换占位符”。所有参数都必须输入值才能插入到查询生成的语法树中。您不能将查询的一部分作为参数传递。

关于java - 使用 jdbctemplate 构建 sql 字符串的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965421/

相关文章:

java - 我们可以将Java中字符串中开头和结尾有符号的部分替换为Identify吗?

java - 返回 JOOX 中的第一级标签

java - 如何在 Play Framework 中进行详细编译?

java - 如何减少代码中的重复性?

java - Spring - java.io.FileNotFoundException

java - 当方法调用与执行时完全相同时,EasyMock 对象会抛出意外的方法调用

java - 是否可以将 steam 操作的结果发送到另一个函数而不将其收集到另一个变量中

java - TestNG 如何在每个测试用例中使用 DataProvider 之前重新初始化它?

java - Spring Boot 在 header 中使用凭据实现命令 HTTP OPTIONS 的方式

java - JDBCTemplate 使用 BeanPropertyRowMapper 设置嵌套 POJO