zoukankan      html  css  js  c++  java
  • mybatis学习(三)

    1.mybatis是一个ORM持久层框架的佼佼者,真正上实现了SQL语句与java代码分离。优秀的功能,动态分离,缓存,插件-pageHelper等

    2.SQL语句使用in的时候,可以用数组封装in中的值。

    3.批量操作数据的情况,可以把操作的数据封装在数组中

    4.mybaits的入参处理:1.传递单个参数的形式(mybaits会自动进行参数的赋值) 2.传递多参数的时候(mybatis会自动封装在Map集合中)

    3.Collection,List,Array作为参数,封装为Map,有一定规则的。

    5.多参数传值的时候 #{名称}的名称是有规范的为[arg0,arg1,parm1,parm2] ,如果用#{username} and #{userpass} 会报错,用#{arg0} and #{arg1} 就不会报错。

    可以用javabean处理:

    代码如下:

    public Person getPersonByNameAndGender(Person person)

    可以用Map传递多参数:

    代码如下:

    public Person getPersonByNameAndGender(Map<String,Object> param);

    利用注解@parm:

    代码如下:

    public Person getPersonByNameAndGender(@Param("username") String username,@Param("gender") String gender)

    collection集合处理参数:

    也可以用别名来代替key值:

      public Person getPersonByCollection(@Param("test") int[] ids);

    动态遍历foreach;

    利用<trim>标签

     <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            ID,
          </if>
          <if test="regType != null" >
            regType,
          </if>
          <if test="lastLandIp != null" >
            lastLandIp,
          </if>
          <if test="pwd != null" >
            PWD,
          </if>
          <if test="userName != null" >
            USERNAME,
          </if>
          <if test="email != null" >
            EMAIL,
          </if>
          <if test="isActivation != null" >
            ISACTIVATION,
          </if>
          <if test="emailActiveDate != null" >
            EMAILACTIVEDATE,
          </if>
          <if test="mobilePhone != null" >
            MOBILEPHONE,
          </if>
          <if test="isBindPhone != null" >
            ISBINDPHONE,
          </if>
          <if test="bindPhoneDate != null" >
            BINDPHONEDATE,
          </if>
          <if test="nickName != null" >
            NICKNAME,
          </if>
          <if test="male != null" >
            MALE,
          </if>
          <if test="birth != null" >
            BIRTH,
          </if>
          <if test="identityCode != null" >
            IDENTITYCODE,
          </if>
          <if test="identityType != null" >
            IDENTITYTYPE,
          </if>
          <if test="province != null" >
            PROVINCE,
          </if>
          <if test="city != null" >
            CITY,
          </if>
          <if test="address != null" >
            ADDRESS,
          </if>
          <if test="postCode != null" >
            POSTCODE,
          </if>
          <if test="homePhone != null" >
            HOMEPHONE,
          </if>
          <if test="regTime != null" >
            REGTIME,
          </if>
          <if test="lastLandTime != null" >
            LASTLANDTIME,
          </if>
          <if test="tempLastTime != null" >
            TEMPLASTTIME,
          </if>
          <if test="status != null" >
            STATUS,
          </if>
          <if test="payPwd != null" >
            PAYPWD,
          </if>
            ZM_SITEID,
          <if test="addDate != null" >
            ADDDATE,
          </if>
          <if test="realName != null" >
            REALNAME,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            #{id,jdbcType=DECIMAL},
          </if>
          <if test="regType != null" >
            #{regType,jdbcType=DECIMAL},
          </if>
          <if test="lastLandIp != null" >
            #{lastLandIp,jdbcType=VARCHAR},
          </if>
          <if test="pwd != null" >
            #{pwd,jdbcType=VARCHAR},
          </if>
          <if test="userName != null" >
            #{userName,jdbcType=VARCHAR},
          </if>
          <if test="email != null" >
            #{email,jdbcType=VARCHAR},
          </if>
          <if test="isActivation != null" >
            #{isActivation,jdbcType=DECIMAL},
          </if>
          <if test="emailActiveDate != null" >
            #{emailActiveDate,jdbcType=TIMESTAMP},
          </if>
          <if test="mobilePhone != null" >
            #{mobilePhone,jdbcType=VARCHAR},
          </if>
          <if test="isBindPhone != null" >
            #{isBindPhone,jdbcType=DECIMAL},
          </if>
          <if test="bindPhoneDate != null" >
            #{bindPhoneDate,jdbcType=TIMESTAMP},
          </if>
          <if test="nickName != null" >
            #{nickName,jdbcType=VARCHAR},
          </if>
          <if test="male != null" >
            #{male,jdbcType=DECIMAL},
          </if>
          <if test="birth != null" >
            #{birth,jdbcType=TIMESTAMP},
          </if>
          <if test="identityCode != null" >
            #{identityCode,jdbcType=VARCHAR},
          </if>
          <if test="identityType != null" >
            #{identityType,jdbcType=DECIMAL},
          </if>
          <if test="province != null" >
            #{province,jdbcType=VARCHAR},
          </if>
          <if test="city != null" >
            #{city,jdbcType=VARCHAR},
          </if>
          <if test="address != null" >
            #{address,jdbcType=VARCHAR},
          </if>
          <if test="postCode != null" >
            #{postCode,jdbcType=VARCHAR},
          </if>
          <if test="homePhone != null" >
            #{homePhone,jdbcType=VARCHAR},
          </if>
          <if test="regTime != null" >
            #{regTime,jdbcType=TIMESTAMP},
          </if>
          <if test="lastLandTime != null" >
            #{lastLandTime,jdbcType=TIMESTAMP},
          </if>
          <if test="tempLastTime != null" >
            #{tempLastTime,jdbcType=TIMESTAMP},
          </if>
          <if test="status != null" >
            #{status,jdbcType=DECIMAL},
          </if>
          <if test="payPwd != null" >
            #{payPwd,jdbcType=VARCHAR},
          </if>
           1,
          <if test="addDate != null" >
            #{addDate,jdbcType=TIMESTAMP},
          </if>
          <if test="realName != null" >
            #{realName,jdbcType=VARCHAR},
          </if>
        </trim>
  • 相关阅读:
    跳跃表的分析与实现
    怎样解决jsp:include标签在包括html文件时遇到的乱码问题
    高速掌握函数指针
    行编辑距离Edit Distance——动态规划
    栈的实现
    客客安装英文语言包
    Swift和Objective-C混合编程
    Android中关于JNI 的学习(三)在JNI层訪问Java端对象
    多台主机共享键鼠
    Phalcon 开发工具(Phalcon Developer Tools)
  • 原文地址:https://www.cnblogs.com/socketqiang/p/10838498.html
Copyright © 2011-2022 走看看