MybatisPlus

分页

配置类

DbType.MYSQL很重要。指定数据库

注意:limit第一个参数(当前页-1 乘以 每页显示条数) 索引从0开始

package com.neuedu.mybatisplus.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //配置分页插件,指定数据库的类型MYSQL
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

测试类

@Test
    void testPage(){
        QueryWrapper<Dept> wrapper = new QueryWrapper<>();
        wrapper.like("loc","1");
        //创建分页对象 指定两个参数 1.第几页 2.每页显示条数
        IPage<Dept> page = new Page<>(2,4);
        //执行分页查询  第二个参数是 查询条件wrapper
        IPage<Dept> result = mapper.selectPage(page,wrapper);
        //满足条件的总数据行数
        System.out.println("满足条件的总数据行数-->"+result.getTotal());
        //每页的行数
        System.out.println("每页的行数-->"+result.getSize());
        //当前页
        System.out.println("当前页-->"+result.getCurrent());
        //总页数
        System.out.println("总页数-->"+result.getPages());
        //分页
        List<Dept> records = result.getRecords();
        records.forEach(r-> System.out.println(r));
    }

查询

yml配置文件

#数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/plus?characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: root

#mybatis-plus配置
mybatis-plus:
  type-aliases-package: com.neuedu.mybatisplus.po
  mapper-locations: classpath:**/*.xml

 实体类

package com.neuedu.mybatisplus.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("emp")   //表名和po类名不一致时,使用TableName注解映射
public class Employee {
    @TableId(value = "empno",type = IdType.ASSIGN_ID)
    //必须使用TableId注解来指定主键列的映射
    //如果属性名和主键列名不一致,配置value属性映射。
    //必须设置type属性指定主键类型 自己指定id:IdType.ASSIGN_ID     自动递增:IdType.AUTO
    private Integer employeeno;
    @TableField(value = "ename")
    //如果非主键列,名字和属性名不一致使用TableField注解映射
    private String employeename;
    @TableField("job")
    private String employeejob;
}

 @TableId注解必须写

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dept {
    @TableId(type = IdType.AUTO)    //主键列注解
    private Integer deptno;
    private String dname;
    private String loc;

}

 Mapper层

 要继承BaseMapper

@Mapper
public interface EmpMapper extends BaseMapper<Employee> {
}

 测试类查询

@Test
    void testQueryWrapper(){
        QueryWrapper<Dept> wrapper = new QueryWrapper<>();
//        wrapper.eq("dname","xxx");  //eq等于
//        wrapper.ne("dname","xxx");  //ne不等于 相当于!=
//        wrapper.gt("deptno",2);  //gt相当于 >
//        wrapper.ge("deptno",1);  //ge相当于 >=
//        wrapper.lt("deptno",20); //lt相当于 <
//        wrapper.le("deptno",22); //le相当于 <=
//        wrapper.between("loc","a","z"); //相当于between and
//        wrapper.like("dname","大连"); //相当于like模糊查询
//        wrapper.in("deptno",1,2,3,4,5); //相当于in
//        wrapper.isNull("dname");    //相当于isNull
//        wrapper.orderByAsc("dname");    //相当于升序排列
//        wrapper.orderByDesc("dname"); //相当于降序

        Dept dept = new Dept(1,"nu","locccc");
        wrapper.eq(dept.getDeptno()!=null,"deptno",dept.getDeptno());
        wrapper.like(dept.getDname()!=null,"dname",dept.getDname());
        wrapper.ne(dept.getLoc()!=null,"loc",dept.getLoc());
        mapper.selectList(wrapper);
    }

测试类更新Update

@Test
    void testUpdateWrapper(){
        UpdateWrapper<Dept> wrapper = new UpdateWrapper<>();
        wrapper.set("dname","将军");
        wrapper.eq("dname","dd");
        //update dept set dname = ? where dname = ?
        mapper.update(null,wrapper);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值