Python 官方文档:入门教程 => 点击学习
jOOQ开箱即支持大量的sql语法。因此,大多数用户在使用JDBC编写动态SQL时,不会像以前那样采用字符串连接的方式。 但时不时地,jOOQ不支持某个厂商的特定功能(是的,它发生
jOOQ开箱即支持大量的sql语法。因此,大多数用户在使用JDBC编写动态SQL时,不会像以前那样采用字符串连接的方式。 但时不时地,jOOQ不支持某个厂商的特定功能(是的,它发生了)。在这种情况下,jOOQ支持各种"普通SQL "api,它可以用来构造几乎所有类型的jOOQ API元素,比如:
但是,有时候,你需要动态地传递一个参数给这样的函数,比如说另一个列的表达式。而你想以一种类型安全的方式做到这一点,因为jOOQ代码生成器已经产生了类型安全的列表达式。所以你可能会倾向于串联,尽管如此:
field("cool_function(1, " + MY_TABLE.MY_COLUMN + ", 3)");
千万不要这样做!因为这些原因:
MY_TABLE.MY_COLUMN.toString()
,没有任何上下文信息,如SQLDialect
和所有其他配置标志。相反,使用jOOQ的纯SQL模板小语言,它允许模板占位符,如{0}, {1}, {2}
:
field("cool_function(1, {0}, 3)", MY_TABLE.MY_COLUMN);
如果你经常这么做,你可以在你自己的迷你DSL中考虑这个调用:
public static Field<String> coolFunction(Field<?> field) {
field("cool_function(1, {0}, 3)", field);
}
而现在,像这样调用:
coolFunction(MY_TABLE.MY_COLUMN)
作为一个经验法则:使用jOOQ,你应该永远不需要借助于SQL字符串连接,你可以始终使用以下两种方法:
以上就是jOOQ串联字符串拒绝使用的原因实例的详细内容,更多关于jOOQ串联字符串的资料请关注编程网其它相关文章!
--结束END--
本文标题: jOOQ串联字符串拒绝使用的原因实例
本文链接: https://lsjlt.com/news/171413.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0