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>