快速开始

我们将通过一个简单的 Demo 来小试牛刀,这里我们以 SpringBoot 项目为例(假设你对 SpringBoot 有所了解)

假设我们已存在一张 User 表, 表的结构和数据如下

id name age mobile
1 Rock0 20 18175670125
2 Rock1 21 18175670126
3 Rock2 22 18175670127
4 Rock3 24 18175670128
5 Rock4 30 18175670129

创建数据表结构

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
	id INT(11) NOT NULL COMMENT '主键ID',
	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
	mobile VARCHAR(11) NULL DEFAULT NULL COMMENT '手机号码',
	PRIMARY KEY (id)
);

导入数据脚本

DELETE FROM user;

INSERT INTO user (id, name, age, mobile) VALUES
(1, 'Rock0', 20, '18175670125'),
(2, 'Rock1', 21, '18175670126'),
(3, 'Rock2', 22, '18175670127'),
(4, 'Rock3', 24, '18175670128'),
(5, 'Rock4', 30, '18175670129');

构建工程

创建一个空的 Spring Boot 工程(工程将以 MySQL 作为默认数据库进行演示)

可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程

添加依赖



 









<dependency>
  <groupId>org.rockyang</groupId>
  <artifactId>mybatis-kits-spring-boot-starter</artifactId>
  <version>1.5.2</version>
</dependency>

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.17</version>
</dependency>

其中 druid-spring-boot-starter 数据库连接池,并不是一定需要,其实你只要引入 mybatis-kits-spring-boot-starter 这一个构件就可以了。

配置

application.properties 配置文件中添加 MySQL 数据库的相关配置:

# 服务器编号,用来辅助生成分布式 ID
server.port=8080

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis-kits-demo?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
spring.datasource.druid.max-active=20

# open debug mode
logging.level.org.rockyang.mybatis.boot.demo.mapper=DEBUG

如果部署多台服务器的话,需要配置 Snowflake 的 workerId(服务器ID) 和 dataCenterId(数据中心ID),已保证在不同机器生成的 ID 不会重复

配置方法也比较简单,在 resources 目录下新建 snowflake.properties,添加以下配置参数:

# 工作机器ID(0~31)
snowflake.workId=1
# 数据中心ID(0~31)
snowflake.dataCenterId=1

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:


 







@SpringBootApplication
@MapperScan("org.rockyang.mybatis.boot.demo.mapper")
public class MybatisDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisDemoApplication.class, args);
    }
}

Note:

这里注意需要把 org.rockyang.mybatis.boot.demo.mapper 替换成你实际的 mapper 文件路径

创建实体类 User (可以通过 mybatis-generator 工具生成)

Note:

实体类必须继承 org.rockyang.mybatis.plus.support.BaseModel

 




































public class User extends BaseModel<Integer> {

    private String name;
    private int age;
    private String mobile;

    public User() {}

	public User(Integer id) {
		this.id = id;
	}

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public int getMobile() {
        return mobile;
    }

    public User setMobile(String mobile) {
        this.mobile = mobile;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

现在,实现 User 表的 CRUD 操作我们只需创建一个对应的 Mapper 接口就行了。

public interface UserMapper extends BaseMapper<User> { }

开始使用

@RunWith(SpringRunner.class)
@SpringBootTest
public class MapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSearchUser() {
        System.out.println(("----- search all users ------"));
		List<User> userList = userMapper.search();
		for (User user : userList) {
			System.out.println(user);
		}
    }

}

控制台输出:

User(id=1, name=Rock0, age=20, mobile=18175670125)
User(id=2, name=Rock1, age=21, mobile=18175670126)
User(id=3, name=Rock2, age=22, mobile=18175670127)
User(id=4, name=Rock3, age=24, mobile=18175670128)
User(id=5, name=Rock4, age=30, mobile=18175670129)

小结

我们通过简单的几个步骤,就实现了对 User 数据表的 CRUD 功能,其实如果你是单表查询的,除非是特别复杂的查询,否则你连 mapper XML 文件都 不用写,像使用 PHP 操作数据库一样简单。我们这里只是测试了一个查询方法,如果想要体验更多的 CRUD 功能演示请参考文档 CRUD 接口

Mybatis-Kits 项目内部提供了 Sample 工程:spring-boot-starter-demo