浅谈Mybatis-Plus(一)
##简介
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 --摘录MP官网
MP是由我们中国的开发团队–苞米豆开发的为简化MyBatis操作的插件,用起来那是相当爽啊,在此感谢苞米豆的各位大佬~~
MP的特性
在官网中已经介绍的非常清楚了,我们在此挑几点来聊一聊
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
- 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
MP的宗旨就是在不改变源码的情况下,对代码进行增强一级简化开发.
在之前使用MyBatis的过程中,我们需要配置mapper.xml文件,书写特别让人头疼的sql语句,但是现在通过MP我们基本上可以远离这种操作了,在不写sql语句的情况下完成业务的实现,但是需要注意的是,必须在单表下使用.为什么MP可以不用写sql呢?因为配置好MP以后会自动注入基本的CRUD,并且对其进行了封装,通过对象来操作.
配置jar包
在pom.xml中添加相应的jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--jdbc依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--添加lombok的包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
注意:
MP的jar包中已经有了MyBatis所以只需要使用这一个jar包就行,如果两个一起使用会报错.
配置application.yml文件
#配置端口号
server:
port: 8092
#管理数据源
spring:
datasource:
#高版本驱动使用
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/211101?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
#设定用户名和密码
username: root
password: root
#SpringBoot整合Mybatis-plus
mybatis-plus:
#指定别名包
type-aliases-package: com.qty.pojo
#扫描指定路径下的映射文件
mapper-locations: classpath:/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
# 一二级缓存默认开始 所以可以简化
#打印mysql日志
logging:
level:
com.qty.mapper: debug
MP使用方法
创建数据表user
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jumIZKao-1645022502334)(C:\Users\11500\AppData\Local\Temp\1645020574945.png)]
创建pojo类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("user")
public class User implements Serializable {
// @TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private String email;
}
pojo类的属性与数据表字段保持匹配
注解说明
@Data:自动生成get/set方法
@NoArgsConstructor:提供无参构造
@AllArgsConstructor:提供全参构造
@Accessors(chain = true):开启链式加载
以上注解在之前的博客中有说明哦~~
**@TableName(“user”): **
包路径:com.baomidou.mybatisplus.annotation.TableName;
作用:参数对应数据表的表名
@TableId(type = IdType.AUTO):
包路径:com.baomidou.mybatisplus.annotation.TableId;
作用:如果逐渐设置了自增,那么可以使用该注解
创建UserMapper
public interface UserMapper extends BaseMapper<User> {
}
主启动项添加mapper包扫描注解
@SpringBootApplication
@MapperScan("com.qty.mapper")
public class MybatisPlusQtyApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusQtyApplication.class, args);
}
}
CRUD测试
在test类中进行测试
数据新增测试
@Test
public void testInsert(){
User user = new User();
user.setAge(20).setName("laoqiao").setId(6L);
userMapper.insert(user);
System.out.println("插入成功!!!");
}
结果查看
我们并没有写一句sql语句,但是我们通过结果发现,MP自动帮我们写好了sql,并且很有心的是,我们没有设置数据的字段,自动填充为null,不会报错.
数据查询
@Test
public void testSelect(){
List<User> list = userMapper.selectList(null);
System.out.println(list);
System.out.println("查询成功!!!");
}
结果查看
ist list = userMapper.selectList(null);
System.out.println(list);
System.out.println(“查询成功!!!”);
}
结果查看
[外链图片转存中...(img-fnI2Bs02-1645022502335)]