400电话 400-660-7376
知识库_柳州依米软件科技有限责任公司
软件定制_柳州依米软件科技有限责任公司网站建设_柳州依米软件科技有限责任公司APP开发_柳州依米软件科技有限责任公司微信营销_柳州依米软件科技有限责任公司
  • 咨询电话
  • 0772-8256510
  • 联系QQ
  • 732570672
  • 手机号码
  • 18577274336
  • E-mail
  • oa@lzyim.com
  • 当前位置:首页知识库

    MyBatis 学习分享

    来源:原创    作者:依米科技-王天睿    时间:2017-12-28

    MyBatis是一个基于java的持久层框架,支持普通SQL查询,存储过程及高级映射。它避免了几乎所有的JDBC代码和参数的手工设置以及对结果集的封装。并且可以使用简单的XML或注解来配置和映射原生信息。

    MyBatis最强大的功能之一就是动态SQL语句功能,传统JDBC的方法在进行组合复杂的SQL语句的时候,需要去拼接,难免会出现一不留神少了个空格、逗号导致程序错误。MyBatis的动态SQL功能正好解决了这个问题,通过在XML文件里配置,可以非常灵活的组合SQL语句,提高开发效率。

    897287-20160227222125065-2096129627.png

         1.if标签

    if标签可以用在很多类型的SQL语句中,下面先看一个很简单的例子。

         <select id="UserAll"resultType="user">

            select * from user username=#{username}

         </select>

    如果我们传入的值是null,这条语句就很可能报错或者查询结果为空。因此我们需要加入if标签先进行判断,如果值为null或者空字符串时,不会将此条件加入查询语句中,增加了灵活性。

         <select id="UserAll"resultType="user">

            select * from user where

            <if test=" username!= null and username!= '' "> 

                        username = #{username}

                  </if>

         </select>

     

         2.if+set更新语句

    update语句中没有使用if标签时,如果有一个参数为null,都会导致修改之后这个参数为空或报错。

    当在update语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置SET标签,去除追加到条件末尾的任何不相关的逗号。

    使用if+set标签执行修改后,如果某个字段为null则不会更新这个字段。

         <update id="updateUser"parameterType="com.lzyim.entity.User">

           update user
                <set>

             <if test="name != null">username = #{ username},</if>

             <if test="password != null">password =#{password},</if>

               </set>

           where id = #{id}

         </update>

    本文链接:http://www.lzyim.com/repository/1040,转载请保留出处!
      联系我们
    wechatcode
    wechatico官方微信公众号
    weibocode
    weiboico新浪官方微博
    wanganico

    桂公网安备 45020202000236号

    备案号:桂ICP备13005335号
    展开