Mybatis的添加和修改功能

MyBatis 添加功能

使用 MyBatis 实现添加功能通常涉及以下几个步骤:

定义插入操作的 SQL 语句,可以在 Mapper XML 文件中编写 insert 语句或者在接口中使用注解方式:

XML 方式示例:

xml 复制代码
<insert id="insertUser" parameterType="com.example.User">
    INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
 

接口注解方式示例:

java 复制代码
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
int insertUser(User user);
 

在 Service 层调用 Mapper 方法:

java 复制代码
User user = new User();
user.setName("张三");
user.setAge(25);
userMapper.insertUser(user);
 

如果需要获取自增主键,可以配置 useGeneratedKeys:

xml 复制代码
<insert id="insertUser" parameterType="com.example.User" 
        useGeneratedKeys="true" keyProperty="id">
    INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
 

MyBatis 修改功能

修改功能与添加类似,需要使用 update 语句:

XML 方式示例:

xml 复制代码
<update id="updateUser" parameterType="com.example.User">
    UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
</update>
 

接口注解方式示例:

java 复制代码
@Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")
int updateUser(User user);
 

Service 层调用示例:

java 复制代码
User user = userMapper.getUserById(1);
user.setName("李四");
user.setAge(30);
userMapper.updateUser(user);
 

动态更新可以使用 set 标签:

xml 复制代码
<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 标签:

xml 复制代码
<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)"套路相同

  1. 写接口方法

  2. 写 XML(或注解)SQL

  3. 调用完必须提交事务sqlSession.commit()),否则数据不会真正进库。

相关推荐
安迪西嵌入式7 小时前
数据平滑处理算法03——中心移动平均
java·前端·算法
行思理8 小时前
IntelliJIdea 创建java spring boot程序
java·开发语言·spring boot
散峰而望8 小时前
C语言刷题(一)
c语言·开发语言·编辑器·github·visual studio
CN-Dust8 小时前
【C++】2025CSP-J第二轮真题及解析
开发语言·c++·算法
钻仰弥坚8 小时前
在线考试系统设计说明文档(需求分析部分)
java·需求分析
BugShare8 小时前
嘿嘿,猜我刚刚发现了什么?IDEA全新UI,极致优雅贼好看!
java·idea
用户3777967210968 小时前
90% 开发者踩过的坑:事务嵌套第三方接口的风险破解与实践
java
温柔一只鬼.8 小时前
Java数组
java·开发语言·算法
仟濹9 小时前
「经典图形题」集合 | C/C++
c语言·开发语言·c++