我们将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能,在此之前,我们假设您已经:
Java
开发环境以及相应 IDESpring Boot
Maven
现有一张 User
表,其表结构如下:
id | name | age | |
1 | Jone | 18 | test1@baomidou.com |
2 | Jack | 20 | test2@baomidou.com |
3 | Tom | 28 | test3@baomidou.com |
4 | Sandy | 21 | test4@baomidou.com |
5 | Billie | 24 | test5@baomidou.com |
其对应的数据库 Schema
脚本如下:
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT "主键ID",
name VARCHAR(30) NULL DEFAULT NULL COMMENT "姓名",
age INT(11) NULL DEFAULT NULL COMMENT "年龄",
email VARCHAR(50) NULL DEFAULT NULL COMMENT "邮箱",
PRIMARY KEY (id)
);
其对应的数据库 Data
脚本如下:
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, "Jone", 18, "test1@baomidou.com"),
(2, "Jack", 20, "test2@baomidou.com"),
(3, "Tom", 28, "test3@baomidou.com"),
(4, "Sandy", 21, "test4@baomidou.com"),
(5, "Billie", 24, "test5@baomidou.com");
创建一个空的 Spring Boot 工程(工程将以 H2 作为默认数据库进行演示)
提示:可以使用 Spring Initializer快速初始化一个 Spring Boot 工程
引入 Spring Boot Starter 父工程:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/>
</parent>
引入 spring-boot-starter
、spring-boot-starter-test
、mybatis-plus-boot-starter
、h2
依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
在 application.yml
配置文件中添加 H2
数据库的相关配置:
# DataSource Config
spring:
datasource:
driver-class-name: org.h2.Driver
schema: classpath:db/schema-h2.sql
data: classpath:db/data-h2.sql
url: jdbc:h2:mem:test
username: root
password: test
在 Spring Boot 启动类中添加 @MapperScan
注解,扫描 Mapper 文件夹:
@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
编写实体类 User.java
(此处使用了Lombok简化代码)
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
编写 Mapper 包下的 UserMapper
接口
public interface UserMapper extends BaseMapper<User> {
}
添加测试类,进行功能测试:
@SpringBootTest
public class SampleTest {
@Autowired
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
提示:UserMapper
中的 selectList()
方法的参数为 MP
内置的条件封装器 Wrapper
,所以不填写就是无任何条件
控制台输出:
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
通过以上几个简单的步骤,我们就实现了 User
表的 CRUD
功能,甚至连 XML
文件都不用编写!
从以上步骤中,我们可以看到集成MyBatis-Plus
非常的简单,只需要引入 starter
工程,并配置 mapper
扫描路径即可。
但 MyBatis-Plus
的强大远不止这些功能,想要详细了解 MyBatis-Plus
的强大功能?那就继续往下看吧!
MyBatis-Plus 条件构造器-AbstractWrapperlikeLeft(R column, Object val)likeLeft(boolean condition, R column, Obj...
MyBatis-Plus 条件构造器-AbstractWrappergroupBy(R... columns)groupBy(boolean condition, R... columns)分组:GROUPBY字段,.....
对象工厂(objectFactory)每次MyBatis创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化...
Spring教程 -Spring构造函数注入我们可以通过构造函数注入依赖。构造函数依赖注入发生在Java Bean的依赖关系在其构造函数中提供...
Spring教程 -Spring Bean初始化和销毁我们可以使用Spring InitializingBean和DisposableBean以对bean初始化和销毁执行操作。对于...