mybatis Mapper.xml类型判断

13人阅读 评论(0) 收藏 举报
分类:

1.判断String是否为空
<if test='str!=null and str=="" '>或者<if test="str!=null and str==’’ "> 

2.判断Integer是否大于0
<if test="idParam !=null and idParam>0"></if>

3.判断Integer不等于0
Mybatis将Integer=0或者int=0的入参会默认为''(空串) ,selectKey查询出来的count==0 不受此限制
以下是两种解决方案
1、去掉空字符串判断
<if test="version != null">
2、添加0值判断,增强判断添加 or eq_isValid ==0
<if test="version != null and version != '' or version == 0">
这两种方法都是可以的,在我看来是这样,如果这个version类型和我的情况一样,是包装类型而不是基本数据类型的话, 第一种就足够了,而且更贴近实际,

因为包装类型除了有值的情况就是null,不会为""空字符串的,String类型不在

    <choose>
      <when test="count >0">
            select 1
      </when>
     <otherwise>
           select 2
      </otherwise>
    </choose>

3.判断List是否不为空
<if test="listParam !=null and listParam.size >0"></if>

4.判断String是否以某特定字符(比如此处的"string")开头
<if test="stringParam.indexOf('string') != -1"></if>

5.判断字符串是否等于特定字符(比如此处的user)
mybatis 映射文件中,if标签判断字符串相等,sex是string类型,原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。 
错解: <if test="sex=='Y' "> 此写法会报java.lang.NumberFormatException异常,单个字符会转成数值型
正解: <if test="sex=='Y'.toString()"> 或者<if test = 'sex== "Y"'>单个的字符要写到双引号里面或者使用.toString()才行!多个字符不受限制<when test="count =='TT' ">, 最好写成  ' count=="TT" '

正解:  <if test='indentify==0 '>或者 <if test='indentify=="0" '>   ( 数值型字符串判断,mybatis会自动转换成数值类型)

                 <if test='indentify>0 '>


给变量加 .toString() 是不行的,至少实际在所使用的myBatis版本(mybatis-3.2.5.jar,mybatis-spring-1.2.1.jar)是不可以,以后版本不知道,这应该是在经过 myBatis 时,影响到其转换操作,故出现错误

查看评论

Mybatis快速入门

-
  • 1970年01月01日 08:00

MyBatis之Mapper.xml获取数据库类型

一、使用场景    不同的数据库的Sql语法有所不同,为了保证在不同的数据库中都能执行,我们需要在MyBatis的Mapper.xml文件中编写sql语句时对当前连接的数据库的类型进行判断,然后编写适...
  • liao_1990
  • liao_1990
  • 2017-11-24 17:23:50
  • 298

MyBatis Mapper.xml各种判断

1.判断String是否为空 if test="stringParam != null and stringParam != ''"> 2.判断Integer是否大于0 if test="i...
  • feng_926701
  • feng_926701
  • 2017-02-18 13:51:45
  • 9428

mybatis中mapper类型的XML

标签用于定义类别名 如: 关联查询使用标签: 两种方式: 一: 二: 使用时:引用的id即可。 代码如下: 一: select w.id as wid,w.wife as...
  • wang_lufei
  • wang_lufei
  • 2016-03-27 21:47:43
  • 935

Mybatis-Mapper.xml输入输出映射

在Mybatis中,Mapper.xml主要负责对数据库的具体操作,即增、删、改、查等相关操作, 对于mapper.xml,我们需要掌握一些常用的标签,下面做出介绍。 parameterType ...
  • qq_28796345
  • qq_28796345
  • 2016-12-04 12:53:32
  • 675

MyBatis中Mapper.xml文件中关于字符串的判断写法(已经验证好用)

mybatis映射文件:例子1&amp;lt;choose&amp;gt;&amp;lt;when test=&quot;leaveType==null&quot;&amp;gt;&amp;lt;!-...
  • zy103118
  • zy103118
  • 2018-03-14 15:50:40
  • 44

mybatis sqlmapper test 判断非字符串类型的值

BUG概要 长话短说。在TbMonitorSystemInfo类里有2个Short类型的属性 isUsing 和 failSendMassage 。在Mybatis的mapper.xml的截取出的...
  • yangjiegang8
  • yangjiegang8
  • 2017-09-05 19:28:23
  • 324

mybatis写mapper xml文件注意事项

1、在xml的sql语句中,不能直接用大于号、小于号要用转义字符 如果用小于号会报错误如下: org.apache.ibatis.builder.BuilderException: Error c...
  • zhanglu0223
  • zhanglu0223
  • 2016-04-14 15:26:51
  • 3579

mybatis mapper.xml入参

Mybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型。 可以接受的参数类...
  • yz7074998
  • yz7074998
  • 2015-08-14 09:46:34
  • 2878

MyBatis Mapper XML文件详解 - 映射和参数 ——学习

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% ...
  • u013034793
  • u013034793
  • 2017-08-01 21:45:14
  • 697
    个人资料
    持之以恒
    等级:
    访问量: 2285
    积分: 265
    排名: 26万+
    文章存档
    最新评论