千家信息网

iBATIS如何使用$和#

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"iBATIS如何使用$和#",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"iBATIS如何使用$和#"这篇文章吧。我们在使用iBA
千家信息网最后更新 2026年11月03日iBATIS如何使用$和#

这篇文章主要为大家展示了"iBATIS如何使用$和#",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"iBATIS如何使用$和#"这篇文章吧。

我们在使用iBATIS时会经常用到#这个符号。

比如:

sql 代码

select * from member where id =#id#

然后,我们会在程序中给id这个变量传递一个值,iBATIS会自动将#id#转成我们传递的内容。

但是我最近碰到一个奇怪的问题。我在批量删除或修改的时候,居然SQL失效了。

SQL如下:

sql 代码

update user set flag=#flag# where id in (#id#)      delete from user where id in (#id#)

传递的id为1,2,3。但是数据却没有任何的修改。

后来查找了半天,原来原因就是这个#的问题。因为iBATIS默认会把"#"中间的变量作为字符串来处理。这样,就会出现这样的SQL


sql 代码

update user set flag='1' where id in ('1,2,3')          delete from user where id in ('1,2,3')

这样的SQL数据库当然是不会执行的。那我们只有绕开iBATIS了吗?

其实不用,iBATIS其实还提供了另外一种方式,那就是使用$来传递值。你使用$将你的变量括起来,iBATIS不会给这个变量做任何的处理,直接生成你要的SQL

SQL代码

update user set flag=$flag$ where id in ($id$)      update user set flag=1  where id in (1,2,3)      delete from user where id in ($id$)   delete from user where id in (1,2,3)

还可以用ibatis的iterate解决:

SQL:

﹤select id="test" parameterClass="java.util.List" resultClass="test.Roadline"﹥          select * from SYS_ROAD_LINE_INFO where ROAD_LINE_NO in           ﹤iterate open="(" close=")" conjunction=","﹥              #value[]#          ﹤/iterate﹥      ﹤/select﹥
List list = new ArrayList();      list.add("aaa");      list.add("bbb");                        List rsList = sqlMap.queryForList("roadline.test", list);

生成的SQL:

select * from SYS_ROAD_LINE_INFO where ROAD_LINE_NO in (?,?)

$中间的变量就是直接替换成值的

#会根据变量的类型来进行替换

比如articleTitle的类型是string, 值是"标题"的时候

$articleTitle$ = 标题

#articleTitle# = '标题'

如果一个字段的名字不规范带有#,那么在﹤select ...﹥ select name# from reader where id=#id#...﹤/select﹥语句中会报错,我看过有人问过这个问题,说是name####但是还是不能解决无法对带#的字段的查询。 解决办法肯定是有的。比如,你可以把这个字段当做一个参数来传递给ibatis。然后用$$把这个变量括起来。

以上是"iBATIS如何使用$和#"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

变量 代码 内容 字段 就是 标题 篇文章 问题 数据 时候 类型 处理 学习 帮助 生成 不用 办法 原因 参数 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 互联网科技工作委员会副主任毛军 鸠鸠互联网科技 新华互联网科技学院 互联网科技有限公司图片 互联网未来科技 智慧科技互联网 善班互联网科技有限公司 互联网科技logo设计 居家互联网科技有限公司 广西拼得多互联网科技有限公司 山东吉时兔互联网科技有限公司 云创客互联网科技公司 江阴互联网智能科技产品进口 注册互联网科技公司经营范围大全 广州燕处互联网科技有限公司 艺电能源互联网科技有限公司招聘 易租星互联网科技有限公司 同城互联网络科技 深圳互联网科技园地址 互联网络科技 互联网科技海报 上海挚品互联网科技 善班互联网科技有限公司 互联网科技有限公司 翻译 创业天下互联网科技有限公司 卓翼科技产业互联网合作 互联网第三次科技革命特征 智帮互联网科技公司最近动向 唐山双旺合互联网科技产业园
0