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

相关文章
|
2天前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
12 4
|
1天前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
12 3
|
2天前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
12 2
|
2天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
8 1
|
2天前
|
Java 程序员
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
15 1
|
6天前
|
Java 数据库连接 mybatis
在Spring Boot应用中集成MyBatis与MyBatis-Plus
在Spring Boot应用中集成MyBatis与MyBatis-Plus
37 5
|
6天前
|
Java 数据库连接 数据库
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
21 2
|
8天前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
26 2
|
1月前
|
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层代码,以加速开发。
77 2
MyBatis-Plus介绍及Spring Boot 3集成指南
|
20天前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)