mybatis使用总结

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

1.批量添加

<insert id="insertBatch" parameterType="java.util.List">

    insert into student(id,name,age)

    values

    <foreach collection="list" item="item" index="index" separator=",">

        (#{item.id}, #{item.name},#{item.age})

    </foreach>

</insert>

2.批量修改

<update id="updateBatch" parameterType="java.util.List">

    <foreach collection="list" item="item" index="index">

        update student

        <set>

            sex = #{item.sex }

        </set>

where id= #{item.id} 

    </foreach>

</update>

如果拿到Navicat中可以执行但是mybatis中不行时需要在jdbc.url中配置allowMultiQueries=true

3.IFNULL(result1,result2):如果不为null则返回第一个的值,否则返回第二个的值

如:IFNULL(a.iccid,'') as iccid

4.对日期进行格式化

如:DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') as create_time_str

5.多字段进行检索数据:

(

    g.vin like CONCAT('%',#{equalMap.queryTerminalParam},'%' )
    or f.sim_no like CONCAT('%',#{equalMap.queryTerminalParam},'%' )
    or g.vehicle_number like CONCAT('%',#{equalMap.queryTerminalParam},'%' ) 
    or c.did like CONCAT('%',#{equalMap.queryTerminalParam},'%' )

)

6.IF(表达式,result1,result2):如果表达式结果为true,返回第一个的值,否则返回第二个的值

如:IF(b.vehicle_id is null,0,1) as STATUS效果类似于(CASE WHEN b.vehicle_id IS NULL THEN '0' ELSE '1' END) AS STATUS

7.更新某条记录时判断修改的字段是否已经被使用的判断方法:

SELECT COUNT(1) FROM tb_vehicle where  enable_flag='1' and vehicle_number = #{vehicleNumber} AND ID != #{id}

8.时间段查询写法:

<if test="equalMap != null &amp;&amp; equalMap.startTime != null &amp;&amp; 

equalMap.startTime!=''" >

    and a.operate_time &gt;=#{equalMap.startTime}
</if>

<if test="equalMap != null &amp;&amp; equalMap.endTime != null &amp;&amp; 

equalMap.endTime!=''" >

    and a.operate_time &lt;=#{equalMap.endTime}

</if>

9.单个时间查询写法:

<if test="equalMap != null &amp;&amp; equalMap.loseTime != null &amp;&amp; 

equalMap.loseTime!=''" >

    and a.lose_time&gt;=#{equalMap.loseTime}
    and a.lose_time&lt;=CONCAT(#{equalMap.loseTime},' ','23:59:59')

</if>

10. GROUP_CONCAT:分组后合并数据即将多行数据合并成一行数据


查看评论

Mybatis快速入门

mybatis已是主流持久层框架,目前学习资料和书籍是最少的,本课程针对实际企业应用,进行mybatis技术解析。
  • 2016年10月27日 09:27

MyBatis学习总结(14)——Mybatis使用技巧总结

1、 区分 #{} 和 ${}的不同应用场景 1)#{} 会生成预编译SQL,会正确的处理数据的类型,而${}仅仅是文本替换。 对于SQL: select * from student where x...
  • u012562943
  • u012562943
  • 2016-01-15 10:57:41
  • 2088

mybatis 使用小结

一、多数据源问题 主要思路是把dataSource、sqlSesstionFactory、MapperScannerConfigurer在配置中区分开,各Mapper对应的包名、类名区分开 ...
  • u011679955
  • u011679955
  • 2016-07-06 10:07:40
  • 326

MyBatis技术总结

还没有汇总完毕,上传测试下效果.
  • Charles_7c
  • Charles_7c
  • 2017-03-21 21:24:49
  • 861

hibernate与mybatis使用总结

对比的写一下这两者的使用吧 1.“hello world”之简单运行流程configuration类,负责管理hibernate的配置信息。包括如下内容:hibernate运行的底层信息,数据库u...
  • zwcddddd
  • zwcddddd
  • 2016-07-26 20:54:52
  • 279

Mybatis知识点回顾/总结

一:mybatis基本工作流程                          1.sqlMapConfig.xml:mybatis全局配置文件,配置了数据源,事务等mybatis的运行环境,...
  • Lee_Ho_
  • Lee_Ho_
  • 2017-06-15 15:47:49
  • 747

mybatis知识点总结和梳理

使用jdbc开发时,和mybatis相比的不足 1,数据库连接,使用时就创建,不使用就释放,对数据库进行频繁连接开关和关闭,造成数据库资源浪费,影响数据库的性能 解决:使用数据库连接池管理数据库的...
  • jaryle
  • jaryle
  • 2016-04-23 22:28:46
  • 9950

MYBatis总结.docx

  • 2012年12月06日 15:43
  • 123KB
  • 下载

Mybatis学习总结(一).初探Mybatis

回顾JDBC编程 Mybatis简介 Mybatis的前身是iBatis,Apache的一个开源项目,2010年这个项目从Apache迁移到Google Code改名为Mybatis ...
  • yuchao2015
  • yuchao2015
  • 2017-01-10 21:27:10
  • 517

【Mybatis学习总结二】Mybatis操作数据表的CRUD实现

本节内容学习了如何通过Mybatis实现对数据库的增删改查操作。一共有两种实现方式,一是基于XML的实现;第二种是基于注解的实现。 下面来具体介绍两种方法的具体实现: 一、基于XML的实现  1   ...
  • noaman_wgs
  • noaman_wgs
  • 2016-09-24 17:27:24
  • 457
    个人资料
    持之以恒
    等级:
    访问量: 440
    积分: 174
    排名: 104万+
    文章存档