关于ibatis/mybatis插入数据中含【$】符号的问题

sca4441479 2016-12-08 06:44:34
关于ibatis/mybatis插入数据中含【$】符号的问题
发现数据中只要含有$符号插入就会报错?
也用<![CDATA[
]]> 这个转义了
如:
INSERT INTO ATTCH (

name

) VALUES (

#name#

)
name字段中只要含有 $ 就报错
网上一堆说$和#的区别的,没有一个人遇到这问题吗?
...全文
1338 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱睡觉的阿狸 2016-12-09
  • 打赏
  • 举报
回复
$是直接拼接不做处理,#会有占位符,运行时赋值。所以说${name},其中name不是说传个字符串就行了,还需要给字符串拼接单引号。
爱睡觉的阿狸 2016-12-09
  • 打赏
  • 举报
回复
引用 7 楼 sca4441479 的回复:
[quote=引用 6 楼 m2200 的回复:] 哦哦哦,我们都理解错了你的意思, 不过我试了下,我的插入$符号好像没问题。
这就奇怪了,版主你用的是##占位是吧?[/quote] 是的,#
sca4441479 2016-12-09
  • 打赏
  • 举报
回复
引用 6 楼 m2200 的回复:
哦哦哦,我们都理解错了你的意思, 不过我试了下,我的插入$符号好像没问题。
这就奇怪了,版主你用的是##占位是吧?
爱睡觉的阿狸 2016-12-09
  • 打赏
  • 举报
回复
引用 5 楼 sca4441479 的回复:
[quote=引用 3 楼 m2200 的回复:]
$是直接拼接不做处理,#会有占位符,运行时赋值。所以说${name},其中name不是说传个字符串就行了,还需要给字符串拼接单引号。


版主你回答的还是# 和 $的区别,我这样说把,你在用ibatis的时候有没有试过插入$看会不会报错?[/quote]

哦哦哦,我们都理解错了你的意思,

不过我试了下,我的插入$符号好像没问题。

sca4441479 2016-12-09
  • 打赏
  • 举报
回复
引用 3 楼 m2200 的回复:
$是直接拼接不做处理,#会有占位符,运行时赋值。所以说${name},其中name不是说传个字符串就行了,还需要给字符串拼接单引号。
版主你回答的还是# 和 $的区别,我这样说把,你在用ibatis的时候有没有试过插入$看会不会报错?
sca4441479 2016-12-09
  • 打赏
  • 举报
回复
引用 1 楼 zwy0123 的回复:
当你使用#符号时,会把它当做一个字符串处理,sql语句也会自动在值的两边加上'',如果你用的是$符号,它是作为sql语义的一部分,是不包含单引符号的,你可以这么写 <![CDATA[ INSERT INTO ATTCH ( name ) VALUES ( '${name}' ) ]]>
你回答的还是# 和 $的区别,我这样说把,你在用ibatis的时候有没有试过插入$看会不会报错?
yexing0406 2016-12-08
  • 打赏
  • 举报
回复
试一试实体编号 $
ichavin 2016-12-08
  • 打赏
  • 举报
回复
当你使用#符号时,会把它当做一个字符串处理,sql语句也会自动在值的两边加上'',如果你用的是$符号,它是作为sql语义的一部分,是不包含单引符号的,你可以这么写 <![CDATA[ INSERT INTO ATTCH ( name ) VALUES ( '${name}' ) ]]>

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧