Mybatis-Plus基础crud

目录

一、添加

1、添加

二、修改

1、根据id修改

2、根据条件修改

三、删除

1、根据id删除

2、根据条件删除deleteByMap

3、根据id批量删除

4、根据条件删除delete

四、查询

1、根据id查询

2、根据id批量查询

3、查询一条数据

4、查询数据条数

5、根据条件查询数据总条数

6、根据条件查询集合

7、分页查询


一、添加

1、添加

复制代码
 //添加
    @Test
    void insert() {
        User user = new User();
        user.setAge(20);
        user.setEmail("1@qq.com");
        user.setName("小黑子");
        user.setPassword("ctrl");
        user.setUserName("haha");
        // //返回的result是受影响的行数,并不是自增后的id
        int result = userMapper.insert(user);
        System.out.println(result);
    }

二、修改

1、根据id修改

复制代码
//根据id修改
    @Test
    void updateById() {
        User user = new User();
        user.setId(1L);
        user.setAge(22);
        user.setName("坤坤");
        int result = userMapper.updateById(user);
        System.out.println(result);

    }

2、根据条件修改

复制代码
//根据条件修改
    @Test
    void update() {
        User user = new User();
        user.setAge(22);
        user.setName("坤坤");
        user.setPassword("1111");

        //添加条件
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //根究 字段user_name 值为zhangsan进行更新操作
        wrapper.eq("user_name","zhangsan");
        //根据条件更新
        int result = userMapper.update(user,wrapper);
        System.out.println(result);

    }

三、删除

1、根据id删除

复制代码
 //根据id删除
    @Test
    void deleteById() {
        //根据id删除
        int result = userMapper.deleteById(2L);
        System.out.println(result);

    }

2、根据条件删除deleteByMap

复制代码
 //根据条件删除
    @Test
    public void testDeleteByMap() {
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("age",20);
        columnMap.put("user_name","haha");
        //将columnMap中的元素设置为删除的条件,多个之间为and关系
        int result = this.userMapper.deleteByMap(columnMap);
        System.out.println("result = " + result);
    }

3、根据id批量删除

复制代码
 //根据id批量删除
    @Test
    public void deleteBatchIds() {

        //根据id批量删除
        int result = this.userMapper.deleteBatchIds(Arrays.asList(6L,7L));
        System.out.println("result = " + result);
    }

4、根据条件删除delete

复制代码
//删除delete
    @Test
    public void delete() {

        //方式一
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_name","11")
                .eq("password","11");

        //方式二
        User user = new User();
        user.setUserName("11");
        user.setPassword("11");
        QueryWrapper<User> queryWrapper1 = new QueryWrapper<>(user);
        //根据id批量删除
        int result = this.userMapper.delete(queryWrapper1);
        System.out.println("result = " + result);
    }

四、查询

1、根据id查询

复制代码
 //根据id查询
    @Test
    public void selectById() {
        //根据id查询
        User user = this.userMapper.selectById(1L);
        System.out.println("result = " + user);
    }

2、根据id批量查询

复制代码
 //根据id批量查询
    @Test
    public void selectBatchIds() {
        //根据id批量查询
        List<User> userList = this.userMapper.selectBatchIds(Arrays.asList(1L, 3L));
        System.out.println("result = " + userList);
    }

3、查询一条数据

复制代码
 //查询一条数据
    @Test
    public void selectOne() {

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_name","11");
        //查询一条,如果多余1条会报异常
        User user = this.userMapper.selectOne(queryWrapper);
        System.out.println("result = " + user);
    }

4、查询数据条数

复制代码
//查询数据条数
    @Test
    public void selectCount1() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        //查询数据总条数
        Integer integer = this.userMapper.selectCount(queryWrapper);
        System.out.println("result = " + integer);
    }

5、根据条件查询数据总条数

复制代码
 //根据条件查询数据总条数
    @Test
    public void selectCount2() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.gt("age",20);//查询年龄大于20的条数
        //根据条件查询数据总条数
        Integer integer = this.userMapper.selectCount(queryWrapper);
        System.out.println("result = " + integer);
    }

6、根据条件查询集合

复制代码
//根据条件查询集合
    @Test
    public void selectList() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.gt("age",20);//查询年龄大于20的条数
        //根据条件查询集合
        List<User> userList = this.userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }

7、分页查询

创建分页插件

复制代码
@Configuration
@MapperScan("com.mybatisplus.mapper")
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor  paginationInterceptor(){
        return new PaginationInterceptor();
    }
}

查询

复制代码
//分页查询
    @Test
    public void selectPage() {

        //创建分页对象
        Page<User> page = new Page<>(2,2);

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("email","itcast");//模糊查询

        IPage<User> iPage = this.userMapper.selectPage(page, queryWrapper);
        System.out.println("数据总条数:" + iPage.getTotal());
        System.out.println("数据总页数:" + iPage.getPages());
        System.out.println("当前页数:" + iPage.getCurrent());
        System.out.println("当前分页总页数:" + iPage.getSize());
        System.out.println("分页对象记录列表:" + iPage.getRecords());

        List<User> records = iPage.getRecords();

        //根据条件查询集合
        records.forEach(System.out::println);
    }
相关推荐
名字还没想好☜21 分钟前
用 Redis + Redisson 实现分布式锁:从踩坑到生产可用
java·redis·分布式·junit·分布式锁·redisson
谙忆28 分钟前
图片CDN与边缘优化实战:缓存策略、图片处理型CDN与动态裁剪
java·spring·缓存
ltqvibe42 分钟前
怎么让本体语义变成可执行的智能体
java·人工智能·本体语义
javajenius1 小时前
Masslynx 4.1安装包免费下载及详细安装教程
java·服务器·前端·其他
程序员吕洞宾1 小时前
开源多维表格SmartTable V1.6.1:工作流画布,让自动化工作流配置更直观、更方便
java·开源·自动化
我登哥MVP1 小时前
走进 Gang of Four 设计模式:访问者模式
java·设计模式·访问者模式·原型模式
雪碧聊技术2 小时前
一文深入理解 Java 函数式编程思想
java·函数式编程
AIGS0012 小时前
突破语义鸿沟:从向量空间JBoltAI看企业大脑构建逻辑
java·大数据·人工智能·人工智能ai大模型应用
琢磨先生David2 小时前
OpenJDK 与 Oracle JDK 完整区别
java
倔强的石头1062 小时前
企业智能设备运维管理系统:靠飞算 JavaAI,告别 Java 低效搬砖日常
java