zoukankan      html  css  js  c++  java
  • mybatisplus-分页和查询删除

    1.分页查询

    ①配置类中追加分页插件

    //注册分页插件
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            return new PaginationInterceptor();
        }

    ②测试分页查询

    //测试分页查询
        @Test
        public void selectByPageTest() {
            Page<User> page = new Page<>(1, 3);//定义page,当前页,一页现实件数
            userMapper.selectPage(page,null);//SELECT id,name,age,email,create_time,update_time,version FROM user LIMIT 0,3
            page.getRecords().forEach(System.out::println);//利用page.getRecords()获取记录,并循环输出
        }

    2.根据id查询

    //测试根据id获取数据集合
        @Test
        public void selectIdTest() {
            User user = userMapper.selectById(1);
            System.out.println(user);//SELECT id,name,age,email,create_time,update_time,version FROM user WHERE id=?
        }

    3.根据id批量查询

    //根据id批量查询数据
        @Test
        public void selectByBatchIDTest() {
            List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2));//SELECT id,name,age,email,create_time,update_time,version FROM user WHERE id IN ( ? , ? )
            users.forEach(System.out::println);
        }

    4.根据map内容进行查询

    //按照map的内容查询
        @Test
        public void selectByMapTest() {
            Map<String, Object> map = new HashMap<>();
            map.put("name", "Tom");
            userMapper.selectByMap(map).forEach(System.out::println);//SELECT id,name,age,email,create_time,update_time,version FROM user WHERE name = ?
        }

    5.根据id删除数据

    //根据id删除数据
        @Test
        public void deleteByIdTest(){
            userMapper.deleteById(1L);//DELETE FROM user WHERE id=?
        }

    6.根据id批量删除数据

        @Test
        public void deleteBatchByIdTest(){
            userMapper.deleteBatchIds(Arrays.asList(2L,3L));//DELETE FROM user WHERE id IN ( ? , ? )
        }

    7.根据条件删除数据

    @Test
        public void deleteByMapTest() {
            Map<String, Object> map = new HashMap<>();
            map.put("name","sandy");//DELETE FROM user WHERE name = ? 
            userMapper.deleteByMap(map);
        }

    8.逻辑删除

    物理删除:从数据库直接删除。

    逻辑删除:在数据库中没有被移除,而是通过一个变量来让他失效!deleted=0 → deleted=1

    ①表中加上deleted字段

    ②实体类中追加deleted字段

    @TableLogic
        private int deleted;

    ③配置类中追加逻辑删除组件

    //注册逻辑删除组件
        @Bean
        public ISqlInjector sqlInjector(){
            return  new LogicSqlInjector();
        }

    ④配置文件中配置逻辑删除

    #配置逻辑删除
    mybatis-plus.global-config.db-config.logic-delete-value=1
    mybatis-plus.global-config.db-config.logic-not-delete-value=0

    ⑤测试删除

        @Test
        public void deleteLogicTest(){
            userMapper.deleteById(5L);// UPDATE user SET deleted=1 WHERE id=? AND deleted=0
        }
    @Test
        public void selectLogicTest(){
            userMapper.selectById(5L);//SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE id=? AND deleted=0
        }
    所有博客均为自己学习的笔记。如有错误敬请理解。
  • 相关阅读:
    testNG参数传递方式
    TestNG超详细教程
    testNG中@Factory详解
    【转】HashMap的工作原理
    shell脚本学习笔记
    awk文本处理知识汇总
    sed文本处理知识点整理
    oracle数据库sql的基本使用
    【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
    HTML5 indexedDB数据库的入门学习(二)
  • 原文地址:https://www.cnblogs.com/tangtang-benben/p/14502361.html
Copyright © 2011-2022 走看看