[Mybatis]Mybatis常用操作

Mybatis是目前国内比较流行的ORM框架,特点是可以写灵活的SQL语句,非常适合中小企业的面向数据库开发。
本文总结自己开发过程中常用的Mybatis操作。

一、插入操作

  • 主键自增插入单条

    <insert id="insert" parameterType="UserInfoDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
            insert into user_info
            (
            `user_name`,
            `hashed_password`,
            `phone_number`
            )
            values
            (
            #{userName},
            #{hashedPassword},
            #{phoneNumber}
            )
        </insert>
    
    <insert id="insert" parameterType="UserInfoDO">
            <!-- mysql数据库order="AFTER",oracle数据库order="BEFORE"-->
            <selectKey keyColumn="id" keyProperty="id" order="AFTER" resultType="java.lang.Integer">
                SELECT LAST_INSERT_ID()
            </selectKey>
            insert into user_info
            (
            `id`,
            `user_name`,
            `hashed_password`,
            `phone_number`
            )
            values
            (
            #{id},
            #{userName},
            #{hashedPassword},
            #{phoneNumber}
            )
        </insert>
    
  • 主键自增批量插入

        <insert id="insertList" parameterType="UserInfoDO" useGeneratedKeys="true" keyProperty="id">
            insert into user_info
            (
            `user_name`,
            `hashed_password`,
            `phone_number`
            )
            values
            <foreach collection="list" item="userInfo" separator=",">
                (
                #{userInfo.userName},
                #{userInfo.hashedPassword},
                #{userInfo.phoneNumber}
                )
            </foreach>
        </insert>
    

二、更新操作

    <update id="updateUser" parameterType="UserInfoDO" keyProperty="id">
        update user_info
        <set>
            <if test="userName != null">user_name = #{userName},</if>
            <if test="hashedPassword != null">hashed_password = #{hashedPassword},</if>
            <if test="phoneNumber != null">phone_number = #{phoneNumber},</if>
        </set>
        <!--当所有if都失效的时候也不会报sql语法错误-->
        id = #{id}
        where id = #{id}
    </update>

posted on 2020-01-21 10:30  郑晓龙  阅读(292)  评论(0编辑  收藏  举报

导航