1.映射
1.1自动映射
【1】表名和实体类名映射 -> 表名user 实体类名User
【2】字段名和实体类属性名映射 -> 字段名name 实体类属性名name
【3】字段名下划线命名方式和实体类属性小驼峰命名方式映射 ->
字段名 user_email 实体类属性名 userEmail
MybatisPlus支持这种映射规则,可以通过配置来设置
map-underscore-to-camel-case: true 表示支持下划线到驼峰的映射
map-underscore-to-camel-case: false 表示不支持下划线到驼峰的映射
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true
1.2表映射
通过@TableName()注解指定映射的数据库表名,就会按照指定的表名进行映射
如:此时将数据库的表名改为powershop_user,要完成表名和实体类名的映射,需要将实体类名也要指定为powershop_user
1.3字段映射
【1】当数据库字段和表实体类的属性不一致时,我们可以使用@TableField()注解改变字段和属性的映射,让注解中的名称和表字段保持一致
如:此时将数据库字段的名称我们改为username,在根据实体类的属性拼接SQL的使用,就会使用@TableField()中指定的名称username进行拼接,完成查询
2.条件构造器
之前我们进行的MybatisPlus的操作,没有涉及到条件查询,实际上在开发需求中条件查询是非常普遍的。接下来我们就来讲解如何使用MybatisPlus完成条件查询。
首先,想要使用MybatisPlus完成条件查询,基于面向对象的思想,万物皆对象,那么查询条件也需要使用对象来完成封装。我们先看一下,在MybatisPlus中,和条件有关的类有哪些,他们之间有什么关系,理清楚了这个,我们在传递条件对象的时候,就很清晰了。
- QueryWrapper
AbstractWrapper的子类,如果我们需要传递String类型的字段信息,创建该对象
//1.创建QueryWrapper对象 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); //2.设置条件,指定String字段名称和值 queryWrapper.eq("name","louie"); //3.使用条件完成查询 User user = userMapper.selectOne(queryWrapper);
2.LambdaQueryWrapper
AbstractLambdaWrapper的子类,如果我们需要传递方法引用方式的字段信息,创建
LambdaQueryWrapper<BookInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(BookInfo::getId,1); BookInfo one = bookInfoService.getOne(lambdaQueryWrapper);
3.查询
3.1等值查询
@Test void eq(){ //1.创建QueryWrapper对象 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); //2.设置条件,指定String字段名称和值 queryWrapper.eq("name","Jack"); //3.使用条件完成查询 User user = userMapper.selectOne(queryWrapper); System.out.println(user); }
eq
allEq条件查询
ne
3.2范围查询
gt
ge
It
le
between
notBetween
3.3模糊查询
like
notLike
likeLeft
likeRight