请教关于SQL多个同样的参数与SQL拼接的问题

发布于 2021-11-16 14:08:38 字数 877 浏览 777 评论 7

@JFinal 你好,想跟你请教个问题:

1、像如下SQL,:code与:type为两个参数,请问在Jfinal中我需要如何传入参数

from Org c 
where substring(c.treeCode, 1, len(:code)) = {:code} and len(c.treeCode) > len({:code}) 
and (:type is null or c.type = :type)

2、能否支持像Ibatis那样的动态拼接SQL,如:

<select id="selectAllProducts" parameterClass="Product" resultMap="ProductResult">
select id,note from Product
<dynamic prepend="WHERE">
<isNotNull property="id">
<isGreaterThan prepend=" and " property="id" compareValue="0">
id = #id#
</isGreaterThan>
</isNotNull>
<isNotEmpty prepend=" and " property="note">
note like '%$note$%'
</isNotEmpty>
</dynamic>
</select>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

风透绣罗衣 2021-11-22 13:05:15

目前来说是这样的,与JDBC行为一样

乞讨 2021-11-22 12:58:27

引用来自“Jone2011”的答案

这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。

谢绝鈎搭 2021-11-22 12:28:50

引用来自“Jone2011”的答案

这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。

丢了幸福的猪 2021-11-22 11:26:40

这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。

沦落红尘 2021-11-22 11:24:29

建议实现下通过 Name 来填充 PreparedStatement 的,这样同一个变量无需多次传入

浮生未歇 2021-11-22 01:55:14

回复
JDBC也没有实现这个feature,JFinal作为JDBC极薄封装,暂时也不打算实现 :)

回眸一笑 2021-11-21 20:10:11

    参考一下 com.jfinal.plugin.activerecord.dialect.MysqlDialect中的sql拼装代码。基本上就是使用StringBuilder拼装带有问号"?"的sql,然后参数可以通过prepared statement来传递。

    JFinal ActiveRecord是对JDBC的极简封装,理论上JDBC能实现的功能都能实现

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文