mybatisPlus(简称MP)是基于mybatis框架上开发的增强型工具提供效率。
想要运用mybatisPuls需要在pom文件中添加依赖:
XML
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
对数据层的增强:
java
package com.example.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.book;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface bookDao extends BaseMapper<book> {
}
在继承的baseMapper类中已经写好了我们需要的增删改查的各种方法。但是我们需要指定我们要进行操作的实体类对象的范型。
下面是对baseMapper类中增删改查的各种方法的测试:
按大小关系条件查询:
方式一:
java
@Test
public void test(){
QueryWrapper wrapper=new QueryWrapper();
wrapper.lt("id",10); //查询id小于10的
List<book> books = userDao.selectList(wrapper);
System.out.println(books);
}
方式二:lambda格式条件查询,解决了wrapper.lt("", )中条件的属性名写错时把不报错的问题。
java
@Test
public void test(){
QueryWrapper<book> wrapper=new QueryWrapper<book>();
//<是小于<, >是大于>,查询id小于6的
wrapper.lambda().lt(book::getId,6);
List<book> books = userDao.selectList(wrapper);
System.out.println(books);
}
该方式QueryWrapper必须指用范型.
方式三:lambda格式条件查询,简化了wrapper.lambda()
java
LambdaQueryWrapper<book> lqw=new LambdaQueryWrapper<book>();
lqw.lt(book::getId,6);
List<book> books = userDao.selectList(lqw);
System.out.println(books);
多条件查询:
java
LambdaQueryWrapper<book> lqw=new LambdaQueryWrapper<book>();
//多条件and关系
lqw.lt(book::getId,6).gt(book::getId,1);//id值小于6且大于1的
//多条件or关系
lqw.lt(book::getId,3).or().gt(book::getId,5);//id值小于3或者大于5的
List<book> books = userDao.selectList(lqw);
System.out.println(books);
查询字段:只查询表中的特定几列
方法一:
java
LambdaQueryWrapper<book> lqw=new LambdaQueryWrapper<book>();
lqw.select(book::getId,book::getName); //只查询表中的这俩列
List<book> books = userDao.selectList(lqw);
方法二:
java
QueryWrapper<book> wrapper=new QueryWrapper<book>();
wrapper.select("id","name");
List<book> books = userDao.selectList(wrapper);
查询信息数目并进行分组:
java
QueryWrapper<book> wrapper=new QueryWrapper<book>();
wrapper.select("count(*) as count","type");
//分组
wrapper.groupBy("type");
List<Map<String, Object>> books = userDao.selectMaps(wrapper);
System.out.println(books);
根据book表中type属性查询数目并进行分组。
做登陆系统时的条件查询:
java
LambdaQueryWrapper<book> wrapper=new LambdaQueryWrapper<book>();
wrapper.eq(book::getId,11).eq(book::getType,"2");
book book = userDao.selectOne(wrapper);
System.out.println(book);
只有在表中的有id为11的同时type属性为2的信息才会被查询到。
模糊查询:like
java
LambdaQueryWrapper<book> lqw=new LambdaQueryWrapper<book>();
lqw.like(book::getType,"spring");
List<book> books = userDao.selectList(lqw);
System.out.println(books);
查询type字段中包含spring的所有信息。
删除多条数据:根据id删除
java
List<Integer> list=new ArrayList();
list.add(20);
list.add(11);
userDao.deleteBatchIds(list);