mybatis 杂记

Posted 诺浅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 杂记相关的知识,希望对你有一定的参考价值。

背景

mybatis有一些常用语法总是忘记,为了避免每次都去网上搜,特此记录以备查阅。

日期比较方式

情况一、数据库是date,代码中也是用的date类型

<if test="startTime != null">
    and ieq.last_upd_time >= #{startTime,jdbcType=TIMESTAMP}
</if>

需要注意的是if中不能使用!='',否则会报错

情况二、数据库是date,代码中是string

可以类型转换后再比较

create_time >= str_to_date( #{startTime},'%Y-%m-%d %H:%i:%s')

也可以转换类型直接比较

create_time >= #{startTime}

IF标签的使用

string类型

<if test="str!=null and str!=''">
      ...
</if>

int类型

<if test="it!=null">
      ...
</if>

list类型,和foreach联合使用

<if test="list != null and list.size() > 0">
  _claimreview.id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}
  </foreach>
</if>

Where标签的使用

<select id="findActiveBlogLike"
     resultType="Blog">
  SELECT * FROM BLOG 
  <where> 
    <if test="state != null">
         state = #{state}
    </if> 
    <if test="title != null">
        AND title like #{title}
    </if>
    <if test="author != null and author.name != null">
        AND author_name like #{author.name}
    </if>
  </where>
</select>

不同类型的参数应该如何传递

Mybatis使用之参数传递

MybatisPlus Sql语句调用QueryWrapper

在接口中方法中:@Param(Constants.WRAPPER) QueryWrapper queryWrapper;
在这里插入图片描述
在我们的Mapper.xml文件中: 直接使用:${ew.customSqlSegment} 就可以调用QueryWrapper对象的条件sql

<select id="selectCustExtraInfoPage">
        SELECT * FROM cust_info ${ew.customSqlSegment}
</select>

以上是关于mybatis 杂记的主要内容,如果未能解决你的问题,请参考以下文章

mybatis学习(39):动态sql片段

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

mybatis动态sql片段与分页,排序,传参的使用

MyBatis动态SQL标签用法

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

mybatis动态sql之利用sql标签抽取可重用的sql片段