如何正确理解Mybatis

Posted meifanghua

tags:

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

一:mybatis是一个持久层的框架,是apache下的顶级项目。

二:mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需求的sql语句。所以mybatis中SQL是一个非常重要的部分,当然框架也对其中SQL语句进行了许多优化

三:mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)

mybatis的工作原理

技术图片

 0

mybatis中的动态SQL语句其中都是一些标签的使用

  1. <if  test="字段的判断"></if>但是<if>标签的局限性较大所以引入下面的<where><if></if></where>
<if test=”name!=null”>
    
</if>

          

        2.<where><if> </if></where>此标签的功能是 在sql语句的开头加上where.去除头部为and 或or开头。

 <where>
     <if test=””></if>
     <if test=””></if>
 </where>

       3.<set> <if></if></set>  Set: 在sql语句前添加set 并且会把sql语句中最后的逗号去除。(主要用于更新数据)

 <set>
<if test=””></if>
<if test=””></if>

</set>

      4.trim标签可以在前缀中加入SQL语句中的where 或者set 可以用来替代<where></where> <set></set>标签

 <trim prefix=”前缀” prefixoverrides=”去除的前缀”  suffix=”后缀” suffixoverrides=”去除后缀”>
      <if test=””></if>
      <if test=””></if>

 </trim>

      5. choose+when+otherwise 和Java中的  switch语句有类似的效果

 

      6.还有一些简化SQL语句的SQL的语句段  以此来减少代码的复用性 在SQL中引入标签<include>标签

<sql id="Base_Column_List">
    id, NAME, age, sex
</sql>
<include refid="Base_Column_List"/> 

        7.foreach标签的使用例如在查询多个id

   技术图片

 

以上是关于如何正确理解Mybatis的主要内容,如果未能解决你的问题,请参考以下文章

mybatisMyBatis Generator

MybatisMyBatis 注解方式的基本 用法

MybatisMyBatis之缓存

MyBatisMyBatis的增删改查

Mybatismybatis登录实例

MybatisMybatis基础(中)