zoukankan      html  css  js  c++  java
  • 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判断.

  • 相关阅读:
    记一次文件上传报错解决过程The temporary upload location is not vali
    Redis反序列化LocalDateTime时报错
    Redis连接池Lettuce Jedis 区别
    Java获取时间打印到控制台
    Java多线程之volatile关键字
    Java多线程之Future,有返回值的线程
    ccf集合竞价
    增广路径求解最大流
    2016年9月ccf
    hash表的建立和查找
  • 原文地址:https://www.cnblogs.com/xujanus/p/5970867.html
Copyright © 2011-2022 走看看