栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis-Plus实现基本的增删改查

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis-Plus实现基本的增删改查

Mybatis-Plus实现基本的增删改查 1、实例
package com.wnx.mall.tiny;


import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wnx.mall.tiny.modules.test.mapper.User2Mapper;
import com.wnx.mall.tiny.modules.test.mapper.UserMapper;
import com.wnx.mall.tiny.modules.test.model.User;
import com.wnx.mall.tiny.modules.test.model.User2;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

import static org.assertj.core.api.Assertions.assertThat;


@SpringBootTest
public class CrudTest {
    @Resource
    private UserMapper mapper;
    @Resource
    private User2Mapper user2Mapper;

    @Test
    public void aInsert(){
        User user = new User();
        user.setName("小羊");
        user.setAge(3);
        user.setEmail("abc@mp.com");
        int count = mapper.insert(user);
        assertThat(count).isGreaterThan(0);
        //成功直接拿到回写的ID
        assertThat(user.getId()).isNotNull();
    }

    @Test
    public void bDelete(){
        int count1 = mapper.deleteById(3L);
        int count2 = mapper.delete(new QueryWrapper().lambda().eq(User::getName, "Sandy"));
        assertThat(count1).isGreaterThan(0);
        assertThat(count2).isGreaterThan(0);
    }
    @Test
    public void cUpdate(){

        //根据ID更新
        User user = new User();
        user.setId(1L);
        user.setEmail("ab@c.c");
        int count1 = mapper.updateById(user);

       //根据ID,更新name,更新email字段
        User user1 = new User();
        user1.setName("mp");
        int count2 = mapper.update(user1, Wrappers.lambdaUpdate()
                .set(User::getEmail, "wangnaixing@qq.com")
                .eq(User::getId, 2));

        //根据ID更新email字段
        User user2 = new User();
        user2.setEmail("miemie@baomidou.com");
        int count3 = mapper.update(user2, new QueryWrapper().lambda()
                .eq(User::getId, 2));

        //根据ID更新email字段方法2
        int count4 = mapper.update(null, Wrappers.lambdaUpdate()
                .set(User::getEmail, "wnx@qq.com")
                .eq(User::getId, 2));

        //根据ID更新email,age字段
        User user3 = new User();
        user3.setEmail("miemie2@baomidou.com");
        int count5 = mapper.update(user3, Wrappers.lambdaUpdate()
                .set(User::getAge, 20).eq(User::getId, 2L));

        assertThat(count1).isGreaterThan(0);
        assertThat(count2).isGreaterThan(0);
        assertThat(count3).isGreaterThan(0);
        assertThat(count4).isGreaterThan(0);
        assertThat(count5).isGreaterThan(0);


    }

    @Test
    public void dSelect() {
        mapper.insert(
                new User().setId(10086L).setName("miemie")
                        .setEmail("miemie@baomidou.com")
                        .setAge(3)
        );
        //根据ID查询
        User user = mapper.selectById(10086L);

        //根据条件查询
        User user1 = mapper.selectOne(new QueryWrapper().lambda().eq(User::getId, 10086L));

        //查询全部ID构成的集合
        List userList = mapper.selectList(Wrappers.lambdaQuery().select(User::getId));
        userList.forEach(System.out::println);

       //查询id,name字段构成的集合
        List userList1 = mapper.selectList(new QueryWrapper().select("id", "name"));
        //查询id,name字段构成的集合 lambda方式
        List userList2 = mapper.selectList(new QueryWrapper().lambda()
                .select(User::getId, User::getName));
        userList1.forEach(System.out::println);
        userList2.forEach(System.out::println);

        //查询全部字段构成的集合
        List selectList = mapper.selectList(null);
        selectList.forEach(System.out::println);
    }

    @Test
    public void orderBy() {
        //根据年龄排序
        List userList1 = mapper.selectList(Wrappers.query().orderByAsc("age"));
        //根据年龄和姓名升序
        List userList3 = mapper.selectList(Wrappers.query().orderByAsc("age", "name"));
        //先按照age升序排列,age相同再按照name降序排列
        List userList5 = mapper.selectList(Wrappers.query().orderByAsc("age").orderByDesc("name"));


        //根据年龄排序  lambda方式
        List userList2 = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge));
        //根据年龄和姓名升序 lambada方式
        List userList4 = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge, User::getName));
       //先按照age升序排列,age相同再按照name降序排列 lambada方式
        List userList6 = mapper.selectList(Wrappers.lambdaQuery().orderByAsc(User::getAge).orderByDesc(User::getName));

    }


    @Test
    public void selectMaps() {
        List> mapList = mapper.selectMaps(Wrappers.lambdaQuery().orderByAsc(User::getAge));
        assertThat(mapList).isNotEmpty();
        assertThat(mapList.get(0)).isNotEmpty();
        mapList.forEach(System.out::println);
    }

    @Test
    public void selectMapsPage(){
        Page> page = mapper.selectMapsPage(new Page<>(1, 5),
                Wrappers.lambdaQuery().orderByAsc(User::getAge));
        page.getRecords().forEach(System.out::println);
    }
    @Test
    public void testSelectMaxId() {
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.select("max(id) as id");
        User user = mapper.selectOne(wrapper);
        System.out.println("maxId="+user.getId());
    }

    @Test
    public void testGroup() {
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.select("age,count(*)").groupBy("age").orderByAsc("age");
        List> mapList = mapper.selectMaps(wrapper);
        mapList.forEach(System.out::println);


        
        LambdaQueryWrapper lambdaQueryWrapper = new QueryWrapper()
                .lambda()
                .select(User::getAge)
                .groupBy(User::getAge)
                .orderByAsc(User::getAge);
        List userList = mapper.selectList(lambdaQueryWrapper);
        userList.forEach(System.out::println);

    }


    @Test
    public void testSqlCondition() {
        //根据模型属性进行 where = 查询
        List user2List = user2Mapper.selectList(Wrappers.query().setEntity(new User2().setName("Jone")));
        Assertions.assertEquals(user2List.size(),1);

        //name字段模糊查询
        List user2List1 = user2Mapper.selectList(Wrappers.query().like("name", "j"));
        Assertions.assertEquals(user2List1.size(),2);

        //年龄大于18 姓名有J
        List user2List2 = user2Mapper.selectList(Wrappers.query()
                .ge("age", 18).like("name","j"));
        Assertions.assertEquals(user2List.size(),1);

    }


}

2、继承图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QY1QB4e9-1641878765775)(D:/%E5%9B%BE%E7%89%87%E7%BB%9F%E4%B8%80%E4%BF%9D%E7%AE%A1%E5%A4%84/image-20220111132354265.png)]

3、总结

MP对单表增强太强大了,小到简单的CURD,大到分组聚合,分页,以及lambada的优雅嵌入。使得代码可读性大大提升!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号