ibatis中的order by 参数配置问题

本文介绍了一个关于MyBatis中SQL参数映射的问题及解决方案。通过调整配置文件中的符号使用,解决了参数被误解释为字符串的问题,确保了动态SQL能够正确执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天在写项目的时候,碰到了这个问题,调试了半天都没搞定。最后把问题锁定到xml配置文件上:

 

一般配置文件都这么写

<select ...>

select * from table where XXX = #valule# order by #value#

</select>

 

但是由于ibatis在将参数值映射到statement里面时,所以对于 #value# 会解释成 字符串 'value' ,于是我的代码就被解释成

 

select * from table where XXX = 'valule' order by 'value'

 

这样显然不对,所以得换个方法

 

<select ...>select * from table where XXX = #valule# order by $value$</select>

 

用$$来包含order by的参数,就OK了~因为$$内的value不会被解释成'value',而是直接原样翻译。

 

总结:如果要考虑数据类型,用#;若是只考虑字符,则用$.

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值