MyBatis-Plus 从入门到上手干事!
2021.05.26 10:53浏览量:527简介:MyBatis-Plus 从入门到上手干事!
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射,而实际开发中,我们都会选择使用 MyBatisPlus,它是对 MyBatis 框架的进一步增强,能够极大地简化我们的持久层代码,下面就一起来看看 MyBatisPlus 中的一些奇淫巧技吧。
说明:本篇文章需要一定的 MyBatis 与 MyBatisPlus 基础。
MyBatis-Plus 官网地址 :https://baomidou.com/ 。
CRUD
使用 MyBatisPlus 实现业务的增删改查非常地简单,一起来看看吧。
1.首先新建一个 SpringBoot 工程,然后引入依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.配置一下数据源:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
url: jdbc:mysql:///mybatisplus?serverTimezone=UTC
password: 123456
3.创建一下数据表:
CREATE DATABASE mybatisplus
;
USE `mybatisplus`;
DROP TABLE IF EXISTS `tbl_employee`;
CREATE TABLE `tbl_employee` (
`id` bigint(20) NOT NULL,
`last_name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=gbk;
insert into `tbl_employee`(`id`,`last_name`,`email`,`gender`,`age`) values (1,'jack','jack@qq.com','1',35),(2,'tom','tom@qq.com','1',30),(3,'jerry','jerry@qq.com','1',40);
4.创建对应的实体类:
@Data
public class Employee {
private Long id;
private String lastName;
private String email;
private Integer age;
}
5.编写 Mapper 接口:
public interface EmployeeMapper extends BaseMapper<Employee> {
}
我们只需继承 MyBatisPlus 提供的 BaseMapper 接口即可,现在我们就拥有了对 Employee 进行增删改查的 API,比如:
@SpringBootTest
@MapperScan("com.wwj.mybatisplusdemo.mapper")
class MybatisplusDemoApplicationTests {
@Autowired
private EmployeeMapper employeeMapper;
@Test
void contextLoads() {
List<Employee> employees = employeeMapper.selectList(null);
employees.forEach(System.out::println);
}
}
运行结果:
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'mybatisplus.employee' doesn't exist
程序报错了,原因是不存在 employee 表,这是因为我们的实体类名为 Employee,MyBatisPlus 默认是以类名作为表名进行操作的,可如果类名和表名不相同(实际开发中也确实可能不同),就需要在实体类中使用 @TableName 注解来声明表的名称:
@Data
@TableName("tbl_employee") // 声明表名称
public class Employee {
private Long id;
private String lastName;
private String email;
private Integer age;
}
重新执行测试代码,结果如下:
Employee(id=1, lastName=jack, email=jack@qq.com, age=35)
Employee(id=2, lastName=tom, email=tom@qq.com, age=30)
Employee(id=3, lastName=jerry, email=jerry@qq.com, age=40)
BaseMapper 提供了常用的一些增删改查方法:
具体细节可以查阅其源码自行体会,注释都是中文的,非常容易理解。
在开发过程中,我们通常会使用 Service 层来调用 Mapper 层的方法,而 MyBatisPlus 也为我们提供了通用的 Service:
发表评论
登录后可评论,请前往 登录 或 注册