zoukankan      html  css  js  c++  java
  • mybatis(四)MyBatis的动态sql语句以及ResultMap和ResultType在使用中的区别

    1. 动态sql语句.

    1.1 if.

    <if test=”name!=null”>

        

    </if>

     

    1.2 Where: sql语句的开头加上where.去除头部为and or开头。

     <where>

         <if test=””></if>

         <if test=””></if>

     </where>

    1.3 Set: sql语句前添加set 并且会把sql语句中最后的逗号去除。

     <set>

    <if test=””></if>

    <if test=””></if>

    </set>

    1.4 Trim

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

          <if test=””></if>

    <if test=””></if>

     </trim>

    1.5 choose+when+otherwise

    1.6 sql片段。

    引用:

     <select id="selectAll"  resultMap="BaseResultMap">
        select 
        <include refid="usercolumns" />
        from users
      </select>

    1.7 foreach 标签遍历。

    删除id=[1,2,3,5,7,9]

     

     具体查看:https://www.cnblogs.com/ysocean/p/7289529.html#_label0(详细介绍)

     模糊查询   like concat('%','某个字','%')

    ResultMap和ResultType在使用中的区别

     

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解

    resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置。

    因此对于单表查询的话用resultType是最合适的。但是,如果在写pojo时,不想用数据库表中定义的字段名称,也是可以使用resultMap进行处理对应的。多表连接查询时,若是一对一的连接查询,那么需要新建一个pojo,pojo中包括两个表中需要查询出的所有的字段,这个地方的处理方式通常为创建一个继承一个表字段的pojo,再在里面添加另外一个表内需要查询出的字段即可。若是一对多查询时,若是使用内连接查询,则很可能出现查询出的字段有重复。使用双重for循环嵌套处理即可。

    resultMap:当使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。

  • 相关阅读:
    78. Subsets
    93. Restore IP Addresses
    71. Simplify Path
    82. Remove Duplicates from Sorted List II
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    312. Burst Balloons
    程序员社交平台
    APP Store开发指南
    iOS框架搭建(MVC,自定义TabBar)--微博搭建为例
  • 原文地址:https://www.cnblogs.com/yufengwang/p/11443100.html
Copyright © 2011-2022 走看看