java - 如何使用 JDBCTemplate 和 MapParameterSource 创建动态 SELECT 子句?
问题描述
我们在 Spring 中的非 JPA 存储库有(并且将会有)很多类似的样板代码。为了最大限度地减少可能的人为错误并减少令人麻木的工作,我们想编写一些实用程序类。为此,我需要能够将列插入到 select 语句中。
我能做什么:
final String sql = "SELECT " + myDynamicColumn + " FROM ....."
这行得通。但是,我们正在使用 jdbcTemplate 和 MapSqlParameterSource,因此,我想做的事情是:
final String sql = "SELECT :myColumn FROM ...";
sqlParams.add("myColumn","realColumnName");
...
然而,这不起作用,因为在执行过程中,任何参数都会被放入单引号中,这不是有效的 SQL。这使代码不透明,因为它迫使我混合两种样式。
有没有办法“告诉” MapSqlParameterSource 该特定元素需要按原样插入,而不对其进行格式化?
解决方案
推荐阅读
- raspbian - 如果使用tocuh scrren,如何在铬中退出全屏
- java - 我应该在java中使用名词或动词作为实体名称吗?
- r - 我有一列带有长字符串,所以我想将它转换为 R 中的简单整数,以便我可以轻松地将其他表与该列连接起来
- java - 将 3 个列表组合成具有唯一值的单个集合
- sql - 带功能的CTAS
- sql - 如何防止 SQL Pivot 行中的 NULL 字段?
- angular - Angular 组件意外值
- sql - PLS-00488:对象“字符串”必须是类型或子类型 - 但它是一种类型
- jquery - Bootstrap DateTimePicker 使用 minDate 和 maxDate 返回错误的时间
- dns - Wget 使用服务器内的域名 - 如何减少 DNS 查找?