请教关于SQL多个同样的参数与SQL拼接的问题
@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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
目前来说是这样的,与JDBC行为一样
引用来自“Jone2011”的答案
这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。
引用来自“Jone2011”的答案
这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。
这样做是非常悲催的事,用StringBuilder拼装非常的不灵活,代码散落到处都是。
建议实现下通过 Name 来填充 PreparedStatement 的,这样同一个变量无需多次传入
回复
JDBC也没有实现这个feature,JFinal作为JDBC极薄封装,暂时也不打算实现 :)
参考一下 com.jfinal.plugin.activerecord.dialect.MysqlDialect中的sql拼装代码。基本上就是使用StringBuilder拼装带有问号"?"的sql,然后参数可以通过prepared statement来传递。
JFinal ActiveRecord是对JDBC的极简封装,理论上JDBC能实现的功能都能实现