SpringBoot整合MyBatis(七)中

简介: SpringBoot整合MyBatis(七)

三.三 删除方法


三.三.一 测试类


  @Test
    public void deleteTest(){
        userService.deleteUser(1);
    }


三.三.二 Mapper接口及其相关XML文件实现


UserMapper接口


 void deleteById(@Param("id") int id);


UserMapper.xml 实现


<delete id="deleteById">
        delete from user where id=#{id}
    </delete>


三.三.三 验证


f56a10df9122fe7d8ea3fa29ecd7f2be.png


三.四 有则修改,没有则添加


三.四.一 测试类


  @Test
    public void saveTest(){
        //1. 构建对象
        User user=new User();
        user.setId(2);
        user.setName("欢欢A");
        user.setDescription("岳泽霖最好的朋友");
        //2. 修改方法
        userService.saveUser(user);
        log.info("添加或者修改成功,{}",user);
    }


三.四.二 Mapper接口及其相关XML文件实现


UserMapper接口


 void saveUser(@Param("user") User user);


UserMapper.xml 实现


  <update id="saveUser">
        insert into user(
            <if test="user.id!=null">
                id,
            </if>
        name,sex,age,description)
        values(
            <if test="user.id!=null">
                #{user.id},
            </if>
        #{user.name},#{user.sex},#{user.age},#{user.description}
        )
        on duplicate key update
        name=#{user.name},sex=#{user.sex},
        age=#{user.age},description=#{user.description}
    </update>


使用 on duplicate key update 进行修改。


插入时,要将 id字段也放置进去。


三.四.三 验证


当没有id属性时,或者id属性不存在时,就添加 Updates为1


12ea11bcf00ca2d3b429da74d0590698.png


数据库里面,会有此 id=2的数据。 手动修改数据库,填充 sex=男,age=25,name改成 ZH


再次运行,就变成了修改。 Updates为2


05a0bbb2906de3b37d4e812a4b34d85e.png


三.五 批量添加测试


三.五.一 测试类


  @Test
    public void batchAddTest(){
        //1. 构建对象
        User user=new User();
        user.setName("小欢欢");
        user.setAge(22);
        user.setSex("女");
        user.setDescription("一个小坏蛋");
        User user1=new User();
        user1.setName("小泽霖");
        user1.setAge(25);
        user1.setSex("男");
        user1.setDescription("一个大坏蛋");
        //这是修改的操作,id=2已经存在这条记录了。
        User user2=new User();
        user2.setName("岳泽霖");
        user2.setAge(25);
        user2.setSex("男性");
        user2.setDescription("一个快乐的程序员");
        //2. 放置到集合里面
        List<User> userList=new ArrayList<>();
        userList.add(user);
        userList.add(user1);
        userList.add(user2);
        userService.batchAddUser(userList);
    }


三.五.二 Mapper接口及其相关XML文件实现


UserMapper接口


void batchAdd(@Param("userList") List<User> userList);


UserMapper.xml 实现


 <insert id="batchAdd">
        insert into user(name,sex,age,description) values
        <foreach collection="userList" item="user" open="" close="" separator=",">
            (#{user.name},#{user.sex},#{user.age},#{user.description})
        </foreach>
    </insert>


三.五.三 验证


9f83a7a0c384cecc5d2b1491aefc485f.png


三.六 批量修改测试


三.六.一 测试类


 @Test
    public void batchUpdateTest(){
        //1. 构建对象
        User user=new User();
        user.setId(2);
        user.setName("小欢欢A");
        user.setAge(22);
        user.setSex("女");
        user.setDescription("一个小坏蛋");
        User user1=new User();
        user1.setId(3);
        user1.setName("小泽霖A");
        user1.setAge(25);
        user1.setSex("男");
        user1.setDescription("一个大坏蛋");
        //
        User user2=new User();
        user2.setId(4);
        user2.setName("岳泽霖A");
        user2.setAge(25);
        user2.setSex("男性");
        user2.setDescription("一个快乐的程序员");
        //2. 放置到集合里面
        List<User> userList=new ArrayList<>();
        userList.add(user);
        userList.add(user1);
        userList.add(user2);
        userService.batchUpdateUser(userList);
    }


三.六.二 Mapper接口及其相关XML文件实现


UserMapper接口


void batchUpdate(@Param("userList") List<User> userList);


UserMapper.xml 实现


<update id="batchUpdate">
        <foreach collection="userList" item="user" open="" close="" separator=";">
            update user set name=#{user.name},sex=#{user.sex},
            age=#{user.age},description=#{user.description}
            where id=#{user.id}
        </foreach>
    </update>


三.六.三 验证


e05a5dfadfd79446c544a59bdb0e4d3c.png


如果执行失败,看 application.yml 配置文件里面 datasource的url部分,是否添加了参数 allowMultiQueries=true ,如果没有,需要添加上.


三.七 批量删除测试


三.七.一 测试类


 @Test
    public void batchDeleteTest(){
        List<Integer> ids= Arrays.asList(3,4,6);
        userService.batchDeleteByIds(ids);
    }


三.七.二 Mapper接口及其相关XML文件实现


UserMapper接口


 void batchDeleteByIds(@Param("ids") List<Integer> ids);


UserMapper.xml 实现


 <delete id="batchDeleteByIds">
        delete from user where id in
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </delete>


三.七.三 验证


43582537b7cb954cf17d6579be04acc6.png


三.八 根据id查询测试


三.八.一 测试类


@Test
    public void findByIdTest(){
        User user=userService.findById(2);
        log.info(user);
    }


三.八.二 Mapper接口及其相关XML文件实现


UserMapper接口


    User findById(@Param("id") int id);


UserMapper.xml 实现


<select id="findById" resultType="top.yueshushu.learn.pojo.User">
        select * from user where id=#{id}
    </select>


三.八.三 验证


d0f20377568a663d5c9414458841aba8.png

相关文章
|
1月前
|
SQL Java 数据库连接
SpringBoot整合Mybatis
SpringBoot整合Mybatis
41 2
|
1月前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
1月前
|
Java 数据库连接 Spring
Spring 整合mybatis
Spring 整合mybatis
26 2
|
3天前
|
安全 Java 数据库连接
Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台项目
Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台项目
14 0
|
11天前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
23天前
|
Java 关系型数据库 数据库连接
MyBatis-Plus介绍及Spring Boot 3集成指南
MyBatis-Plus是一个MyBatis扩展工具,旨在简化Java开发中的CRUD操作。它具有无侵入性、低损耗、强大的CRUD功能、Lambda表达式支持、主键自动生成、ActiveRecord模式、全局操作和内置代码生成器等特点。在Spring Boot 3中集成MyBatis-Plus,需在pom.xml添加依赖,排除特定版本的mybatis-spring,并用@MapperScan注解指定Mapper接口路径。此外,还介绍了如何使用MyBatis-Plus代码生成器自动生成Mapper、Model、Service和Controller层代码,以加速开发。
67 2
MyBatis-Plus介绍及Spring Boot 3集成指南
|
24天前
|
SQL Java 关系型数据库
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
31 2
|
24天前
|
Java 关系型数据库 MySQL
SpringBoot整合JUnit、MyBatis、SSM
SpringBoot整合JUnit、MyBatis、SSM
29 4
|
24天前
|
Java 数据库连接 数据库
Spring整合Mybatis、Spring整合JUnit
Spring整合Mybatis、Spring整合JUnit
25 1
Spring整合Mybatis、Spring整合JUnit
|
25天前
|
Java 数据库连接 数据库
小唐开始学 Spring Boot——(3)利用mybatis访问数据表
小唐开始学 Spring Boot——(3)利用mybatis访问数据表