Mybatis-plus分页操作

Mybatis-plus

  • 在Java中使用数据库,使用jdbc

    1. 在项目中直接使用jdbc,访问数据库。创建Connection,ResultSet

    2. 把jdbc的操作进行封装,创建工具类,DBUtil

    3. 持久层对象

      1. hibernate:全自动框架,实现Java Object——表的映射。可以通过Java对象的方法,操作表中的数据。开发人员可以不了解或者少了解sql语言。

        可以使用hibernate访问不同的数据库,不要改变代码,通用不同的数据库

      2. jpa规范:定义了数据库的各种操作。定义了一致的方法操作数据库

        jpa有各种实现:hibernate,open-jpa,link

      3. mybatis:需要编写xml配置文件,在xml文件中编写sql语句,访问数据库。任何操作需要使用xml文件。对开发人员要求较高,需要熟悉SQL语言。单表的crud也需要xml文件,编写SQL语句

      4. mybatis plus:简称MP。对mybatis的增强。在mybatis之外加入了一层。通过MP实现单表的CRUD,不使用xml文件。分页,性能统计,逻辑删除

一、第一个程序

实现步骤:

  1. 创建spring-boot项目

  2. 添加依赖

    		<!--mybatis-plus-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.3.2</version>
            </dependency>
    
  3. 创建实体类

指定主键

value:主键字段的名称,如果与数据库相同可以不写

type:指定主键的类型,主键的值如何生成。IdType.AUTO 表示自动增长

    @TableId(
            value = "id",
            type = IdType.AUTO
    )
  • none没有主键

  • auto自动增长(mysql, sql server)

  • input手工输入

  • id_worker:实体类用Long id ,表的列用bigint , int类型大小不够

  • id_worker_str 实体类使用String id,表的列使用varchar 50

  • uuid 实体类使用String id,列使用varchar 50

  1. 创建mapper文件

自定义Mapper,就是dao接口

  1. 需要实现BaseMapper

  2. 指定实体类

StudentMapper extends BaseMapper<Student>

BaseMapper是MP框架中的对象,定义了17个操作方法(CRUD)

  1. 设置扫描器

    在springboot启动类上

    在***Application中添加标签@MapperScan(value = “mapper所在包名”)

    @MapperScan:扫描器,指定Mapper类所在的包

  2. 测试使用

    在测试类或Service注入到Dao接口,框架实现动态代理创建Dao的实现类对象

    调用BaseMapper中的方法,完成CRUD

二、ActiveRecord

1.ActiveRecord是什么

  • 每一个数据库对应创建一个类,类的每一给对象实例对应于数据库中表的一行记录,通常表的每个字段在类中都有相应的field
  • ActiveRecord负责把自己持久化,在ActiveRecord中封装了对数据库的访问,通过对应自己实现crud
  • ActiveRecord也封装了部分业务逻辑,可以作为业务对象使用

三、分页操作

  1. 创建config类,添加分页插件

    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    /**
     * @Configuration标注的类就相当于xml配置文件
     */
    @Configuration
    public class Config {
        /***
         * 定义方法,返回的返回值是java 对象,这个对象是放入到spring容器中
         * 使用@Bean修饰方法
         * @Bean等同于<bean></bean>
         */
        @Bean
        public PaginationInterceptor paginationInterceptor(){
            return new PaginationInterceptor();
        }
    }
    
  2. 测试代码

    @Test
    public void testPage(){
    	QueryWrapper<Student> qw = new QueryWrapper<>();
    	qw.gt("age",22);
    	IPage<Student> page  = new Page<>();
    	//设置分页的数据
    	page.setCurrent(1);//第一页
    	page.setSize(3);// 每页的记录数
    
    	IPage<Student> result = studentDao.selectPage(page,qw);
    
    	//获取分页后的记录
    	List<Student> students = result.getRecords();
    	System.out.println("students.size()="+students.size());
    	//分页的信息
    	long pages  = result.getPages();
        System.out.println("页数:"+pages);
        System.out.println("总记录数:"+result.getTotal());
        System.out.println("当前页码:"+result.getCurrent());
           System.out.println("每页的记录数:"+result.getSize());
    }
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值