mybatis使用笔记

关于动态SQL里的条件查询(if test):

1.lombok插件和mybatis插件在有些变量名下会冲突,比如一个变量为rType的字段,lombok插件认为应该是getRType,但是mybatis和idea则会认为是getrType。不同的命名规范导致互相解析的时候就会找不到对应的get方法。所以在使用变量时尽量避免使用rTyp这种小写字母+大写字母的命名方法。

2.SQL里的用条件查询的时候,判断规则比较麻烦,如果是比较字符串的话,建议都用双引号而不是单引号把判断条件括起来(外面用单引号)。因为如果字符串里是数字或是单个字母的话,使用单引号都会失效。数字的话,必须把单引号去掉,字符的话要加toString()方法(如'y'.toString())。

3.空字符和0的坑:mybatis里面Integer类型如果为0,在XML里面会被等同于""(空字符串);而如果传的是字符串的0,也会等同于"";所以在mybatis的XML里的test判断,注意慎用空字符串""的判断,他会等同于数值0。从而被test语句给过滤掉,一般加上!=null的判断就好。PS.mybatis本身并不是用来做参数校验的,加上它自己的test判断逻辑和java的并不一致(很奇怪),已经踩过几次坑了。因此以后参数校验部分最好放在java端做,mybatis只用来做一些简单的非null判断.

posted @ 2016-10-17 18:59  系统攻城狮  阅读(240)  评论(0编辑  收藏  举报