赞
踩
<!--MyBatis-Plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
查询(根据ID 批量查询)主键ID列表(不能为 null 以及 empty)
//根据ID批量查询
@Test
public void test4(){
//批量查询id
List<Long> list=new ArrayList<>();
list.add(1087982257332887553L);
list.add(1088250446457389058L);
List<User> users = userDao.selectBatchIds(list);
System.out.println(users.size());
}
查询(根据 columnMap 条件)表字段 map 对象
//根据Map字段中key作为条件 value作为值来查询
@Test
public void test5(){
Map map=new HashMap();
map.put("age",40);
map.put("name","大boss");
List list = userDao.selectByMap(map);
System.out.println("list = " + list.size());
}
根据 entity 条件,查询一条记录 实体对象封装操作类(可以为 null)
//1.名字中包含雨 并且 年龄小于 40 @Test public void test6(){ //这里必须使用 QueryWrapper来当作参数 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.like("name","雨").lt("age",40); List<User> users = userDao.selectList(queryWrapper); users.forEach(user -> System.out.println("user = " + user)); } //2.名字中包含雨 并且年龄 大于20 且小于40 并且email不为空 @Test public void test7(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.like("name","雨").between("age",20,40).isNotNull("email"); List<User> users = userDao.selectList(wrapper); users.forEach(user -> System.out.println("user = " + user)); } //3.查询 姓王 或者 年龄大于25 按照年龄降序排列,年龄相同 按照 id升序排列 @Test public void test8(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.likeRight("name","王") .or().ge("age",25).orderByDesc("age") .orderByAsc("id"); List<User> users = userDao.selectList(wrapper); users.forEach(user -> System.out.println("user = " + user)); }
剩下的查询基本都一样了,建议大家多看看
BaseMapper 类中 的方法
AbstractWrapper 类中的方法
6.1:创建configuration 目录 —> 创建configuration文件
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class configuration { /** * MyBatis-Plus 分页插件 * */ @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); } }
6.2:使用MyBatis-Plus自己定义的分页
//分页查询 @Test public void test25(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.like("age",0); //注意这里三个参数 //第1个参数 显示当前的页 //第2个参数 当前页显示几条数据 //第3个参数 是否计算总行数 默认true, false代表不计算总条数 Page<User> page = new Page<>(1,2,true); Page<User> page1 = userDao.selectPage(page, wrapper); System.out.println("总页数 = " + page1.getPages()); System.out.println("总记录数 = " + page1.getTotal()); System.out.println("当前页数 = " + page1.getCurrent()); List<User> list = page1.getRecords(); System.out.println("list = " + list.size()); }
6.3:我们自己定义一个分页
1.首先我们在DAO层定义一个接口
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhang.demomp.entity.User;
import org.apache.ibatis.annotations.Param;
public interface IUserDao extends BaseMapper<User> {
//自定义SQL分页
IPage<User> selectMyPage(Page<User> page, @Param(Constants.WRAPPER) Wrapper<User> queryWrapper);
}
2.定义mapper文件夹 用来放.xml文件
<select id="selectMyPage" resultType="com.zhang.demomp.entity.User">
select *from z_use ${ew.customSqlSegment}
</select>
3.application.yml文件中加入 .xml文件所在的地址
#配置.xml所在的地址
mybatis-plus:
mapper-locations: classpath*:com/zhang/demomp/mapper/*.xml
4.pom文件中配置这个(注意这个配置 在build下面)
<!-- 资源配置 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
5.编写测试用例
//测试自己编写的分页
@Test
public void test26(){
//使用Lambda查询
//LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery(User.class);
//wrapper.eq(User::getAge,0);
QueryWrapper<Class<User>> query = Wrappers.query(User.class);
wrapper.gt("age",0);
Page<User> page = new Page<>(1,2);
IPage<User> page1 = userDao.selectMyPage(page, wrapper);
System.out.println("page1 = " + page1.getRecords().size());
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。