Mybatis的添加和修改功能
MyBatis 添加功能
使用 MyBatis 实现添加功能通常涉及以下几个步骤:
定义插入操作的 SQL 语句,可以在 Mapper XML 文件中编写 insert 语句或者在接口中使用注解方式:
XML 方式示例:
<insert id="insertUser" parameterType="com.example.User">INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>接口注解方式示例:
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
int insertUser(User user);在 Service 层调用 Mapper 方法:
User user = new User();
user.setName("张三");
user.setAge(25);
userMapper.insertUser(user);如果需要获取自增主键,可以配置 useGeneratedKeys:
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>MyBatis 修改功能
修改功能与添加类似,需要使用 update 语句:
XML 方式示例:
<update id="updateUser" parameterType="com.example.User">UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
</update>接口注解方式示例:
@Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")
int updateUser(User user);Service 层调用示例:
User user = userMapper.getUserById(1);
user.setName("李四");
user.setAge(30);
userMapper.updateUser(user);动态更新可以使用 set 标签:
<update id="updateUser" parameterType="com.example.User">UPDATE user<set><if test="name != null">name=#{name},</if><if test="age != null">age=#{age},</if></set>WHERE id=#{id}
</update>批量操作可以使用 foreach 标签:
<insert id="batchInsert" parameterType="java.util.List">INSERT INTO user(name, age) VALUES<foreach collection="list" item="item" separator=",">(#{item.name}, #{item.age})</foreach>
</insert>总结:
MyBatis 的“添加(INSERT)”和“修改(UPDATE)”套路相同:
写接口方法
写 XML(或注解)SQL
调用完必须提交事务(
sqlSession.commit()),否则数据不会真正进库。
