MyBatis遍历字符串,在MyBatis使用特殊符号,Sql数据类型转换

   日期:2020-10-05     浏览:209    评论:0    
核心提示:文章目录前言一、MyBatis遍历字符串二、在MyBatis使用特殊符号Sql数据类型转换int转varcharvarchari转int总结前言这两天打代码在mybatis的数据库操作上 遇到了一些问题。其实主要还是数据库知识有点薄弱,是我菜了,所以写个博客做个笔记,西祠遇到就不会再懵逼了。一、MyBatis遍历字符串说到myBatis的遍历,我只想到mybatis遍历数组或链表,所以我的字段是字符串如“1,2,3”.所以我最先想到的是在调用Mapper接口时,吧该字符串转化成数组,传入mybat

文章目录

  • 前言
  • 一、MyBatis遍历字符串
  • 二、在MyBatis使用特殊符号
  • Sql数据类型转换
    • int转varchar
    • varchari转int
  • 总结

前言

这两天打代码在mybatis的数据库操作上 遇到了一些问题。其实主要还是数据库知识有点薄弱,是我菜了,所以写个博客做个笔记,以后遇到就不会再懵逼了。

一、MyBatis遍历字符串

说到myBatis的遍历,我只想到mybatis遍历数组或链表,所以我的字段是字符串如“1,2,3”.所以我最先想到的是在调用Mapper接口时,吧该字符串转化成数组,传入mybatis里,其实一般的情况下是没有问题的,但是我的数据库设置太多映射了。在还没调用到将字符串转为数组时就通过方法映射调用MyBatis遍历的方法,然后就报了数据不匹配的错。这是防不胜防。我还一直以为是我遍历方法写错了,
以下是我遍历字符串的方法。学到了,还能这么用

 select * from t_toWho where id in
        <foreach collection="strs.split(',')" item="item" index="index" open="(" close=")" separator=",">
            CONVERT(#{item},SIGNED)
        </foreach>

二、在MyBatis使用特殊符号

因为以前在Mybatis的判断都是 以下之类的

<if test="A!=null and A!=“”"> </if>

所以今天突然想比大小 就发现报错了

与元素类型 “if“ 相关联的 “test“ 属性值不能包含 ‘<‘ 字符

特意去学习了一波

gt 对应 >
gte 对应 >=
lt 对应 <
lte 对应 <=
eq 对应 ==
neq 对应 !=

还遇到了一个比较坑爹的 关于字符串拼接
因为想要实现模糊查询,因为原因如上面一样,映射多,不然直接在调用Mapper接口的时候拼接了就不会有那么多事了
不多说了直接上代码

and toWhoId like  CONCAt(CONCAt('%', #{toWhoId}), '%')


其实办法还有很多 ,我是觉得上面的方法不错,比较直观,有更好的话,各位大佬帮忙在评论指出哦

Sql数据类型转换

int转varchar

123+‘’
CAST(123 AS CHAR);

varchari转int

CONVERT(#{item},SIGNED)
CONVERT(‘67’,SIGNED);

总结

好好对每一个坑都做好笔记,就会越来越好。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服