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

Mybatis-plus常用方法

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

Mybatis-plus常用方法

Mybatis-plus常用方法总结(便携查看) 1. 单表增删改查
class GgktDemoApplicationTests {
    //注入mapper
    @Autowired
    private UserMapper userMapper;
    //1.查询
    @Test
    public void findAll(){
        List users = userMapper.selectList(null);
        for (User user:users
             ) {
            System.out.println(user);
        }
    }
    //2.插入
    @Test
    public void addUser(){
        User user=new User();
        user.setName("xiaoming");
        user.setAge(10);
        user.setEmail("23232930.com");
        //加入的行数
        int rows=userMapper.insert(user);
        System.out.println("rows:"+rows);
        //添加成功之后生成id值,回传到user对象里面
        System.out.println(user);
    }
    //3.修改操作
    @Test
    public void updateUser(){
        //根据id查询
        User user = userMapper.selectById(2);
        //设置修改值
        user.setName("zhangkai");
        //调用方法修改
        int rows=userMapper.updateById(user);
        System.out.println(rows);
    }
    //5 id删除
    @Test
    public void deleteId(){
        int rows = userMapper.deleteById(2);
        System.out.println("id删除行数"+rows);
    }
    //6 批量删除
    @Test
    public void deleteBatchIds(){
        int rows = userMapper.deleteBatchIds(Arrays.asList(1, 3));
        System.out.println("批删除行数"+rows);
    }
}
2. 分页查询(使用较多)
class GgktDemoApplicationTests {
    //注入mapper
    @Autowired
    private UserMapper userMapper;
    //4分页查询
    @Test
    public void findPage(){
        //创建Page对象,传递两个参数
        //当前页----- 每页显示记录数(1当前,3每页)
        Page page = new Page<>(1, 3);
        //调用mp方法事项分页
        userMapper.selectPage(page,null);
        //IPage page1 = userMapper.selectPage(page, null);
        List list = page.getRecords();
        System.out.println(list);
        System.out.println(page.getCurrent());
        System.out.println(page.getPages());
        System.out.println(page.getSize());
        System.out.println(page.getTotal());
        System.out.println(page.hasNext());
        System.out.println(page.hasPrevious());
    }
}
3. 主键生成策略

1.ID_WORKER

MyBatis-Plus默认的主键策略是:ID_WORKER 全局唯一ID

2.自增策略

//data注解对应lombok使用get,set方法
@Data
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    //逻辑删除标志 0--1,添加注解,注解是以Mybatis-plus封装的TableLogic
    @TableLogic
    private Integer deleted;
}
//其他主键
public enum IdType {  
    //数据库ID自增 IdType.AUTO(0)
    AUTO(0),
  	//该类型为未设置主键类型
    NONE(1),
	//用户输入ID   IdType.INPUT(0)
    //该类型可以通过自己注册自动填充插件进行填充   
    INPUT(2),
    //全局唯一ID (纯数字,比UUID更方便排序)    
    ASSIGN_ID(3),
  	//全局唯一ID (UUID)
    ASSIGN_UUID(4),
    
    @Deprecated
    ID_WORKER(3),
    
    @Deprecated
    ID_WORKER_STR(3),
    
    @Deprecated
    UUID(4);
    private final int key;
    private IdType(int key) {
        this.key = key;
    }
    public int getKey() {
        return this.key;
    }
}
4.逻辑删除

实体类需要添加注解依赖

//data注解对应lombok使用get,set方法
@Data
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
    //逻辑删除标志 0--1,添加注解,注解是以Mybatis-plus封装的TableLogic
    @TableLogic
    private Integer deleted;
}

application.properties配置文件中配置,有默认,一样的话不需要配置

5.Mybatis-plus对service层的封装

原始注入controller->service->mapper

@Service
public class UserServiceImpl implements UserService {
    //注入mapper
    //@Autowired
    //private UserMapper userMapper;

}
public interface UserService {
}

Mybatis-plus对service层的封装

public interface UserService extends IService {
}
@Service
public class UserServiceImpl extends ServiceImplimplements UserService {
    //注入mapper
    //@Autowired
    //private UserMapper userMapper;
}

逻辑删除,删除后数据库表中对应的delete列变成1,并且findAll()方法不会再查询出来该条信息内容,但是信息仍在表里。

//5 id删除
    @Test
    public void deleteId(){
        int rows = userMapper.deleteById(2);
        System.out.println("id删除行数"+rows);
    }
6. 条件查询(使用较多,重要)

下面列出一些常用方法

eq --> equal等于
ne--> not equal不等于
gt --> greater than大于
lt --> less than小于
ge --> greater than or equal 大于等于
le --> less than or equal 小于等于
in --> in 包含(数组)
isNull --> 等于null
between --> 在2个条件之间(包括边界值)
like-->%XX%、likeLeft-->%XX、likeRight-->XX%
orderByDesc-->降序、orderByAsc-->升序

部分方法代码

@Test
public void query1(){
    //首先需要创建QueryWrapper对象
    QueryWrapper wrapper = new QueryWrapper<>();
    //ge、gt、le、lt
    //ge两个参数:第一个参数为表字段名称,第二个参数是大于小于。。。的值age>10
    wrapper.ge("age",20);
    List userList = userMapper.selectList(wrapper);
    System.out.println(userList);
}
//3.queryWrapper--like:%To%、likeLeft:%To、likeRight:To%**
    @Test
    public void query3(){
        //首先需要创建QueryWrapper对象
        QueryWrapper wrapper = new QueryWrapper<>();
        //like、likeLeft、likeRight
        //like两个参数:第一个参数为表字段列名称,第二个参数值--模糊值
        wrapper.like("name","To");
        List userList = userMapper.selectList(wrapper);
        System.out.println("执行结果>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
        System.out.println(userList);
    }
//4.queryWrapper--orderByDesc降序、orderByAsc升序**
    @Test
    public void query4(){
        //首先需要创建QueryWrapper对象
        QueryWrapper wrapper = new QueryWrapper<>();
        //orderByDesc、orderByAsc
        //orderByDesc一个参数:第一个参数为表字段列名称,
        wrapper.orderByDesc("name");
        List userList = userMapper.selectList(wrapper);
        System.out.println("执行结果>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
        System.out.println(userList);
    }

LambdaQueryWrapper基本和QueryWrapper用法一致,只是写法不同

//5.LambdaqueryWrapper
@Test
public void LambdaQueryWrapper(){
    //首先需要创建LambdaQueryWrapper对象
    LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
    //wrapper.eq(User::getName,"Tom");
    //wrapper.ge(User::getAge,20);
    wrapper.likeLeft(User::getName,"om");
    //查询调用
    List userList = userMapper.selectList(wrapper);
    System.out.println("执行结果>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    System.out.println(userList);
}
r.ge(User::getAge,20);
    wrapper.likeLeft(User::getName,"om");
    //查询调用
    List userList = userMapper.selectList(wrapper);
    System.out.println("执行结果>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    System.out.println(userList);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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