mybatis 里如何连接字符串?

2017-09-26 15:38:57 +08:00
 esolve

像是下面的 table_name='user_'#{groupId}

连接是错误的

譬如如果 id 是 132,应该是变成了'user_'132,而不是期望的'user_132'

 <select id="tableExists" parameterType="String" resultType="Integer">
    SELECT COUNT(*)
    FROM information_schema.tables
    WHERE table_schema='api_db'
    AND table_name='user_'#{groupId}
 </select>
9064 次点击
所在节点    问与答
5 条回复
Aegwynn
2017-09-26 15:49:20 +08:00
oracle:'user_'||#{groupId}
mysql:concat('user_',#{groupId})

顺便吐槽 lz,你这什么 jb 用法,拼接放到上层语言不行么?
LichMscy
2017-09-26 15:52:13 +08:00
一楼正解

传 parameter 的时候直接拼上'user_',减少在 SQL 中拼接,不然就用 concat,建议掌握下 mybatis 的原理
novaeye
2017-09-26 15:53:40 +08:00
"#"符号换成"$"符号.
参考: http://www.jianshu.com/p/b3b4a4fb8a54
hcymk2
2017-09-26 16:00:11 +08:00
用 getMetaData().getTables() 来判断表是否存在吧。
esolve
2017-09-26 16:10:16 +08:00
@Aegwynn 分表了啊,如果在 java 层的话,那就要在业务层拼接了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/393795

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX