-
Notifications
You must be signed in to change notification settings - Fork 4
快速搭建SpringBoot+Mybatis应用
lxy edited this page Jul 6, 2021
·
1 revision
假设数据库有一张用户表
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`user_id` int(11) NOT NULL COMMENT 't_user外键',
`city` varchar(50) DEFAULT NULL COMMENT '城市',
`address` varchar(100) DEFAULT NULL COMMENT '街道',
`status` varchar(4) DEFAULT '0' COMMENT '类型',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
下面讲解如何使用代码生成器快速搭建SpringBoot + Mybatis应用
创建后的工程如下:
pom.xml添加mybatis、mysql依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
application.properties添加配置:
server.port=7070
# 数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/code_gen?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
# 指定mybatis配置文件存放位置
mybatis.mapper-locations=classpath:mybatis/*.xml
新建一个entity包,用来存放实体类,新建一个mapper包,用来存放Mapper接口
在resources下新增一个mybatis文件夹,存放mybatis配置文件
此时项目结构如下:
使用代码生成器生成代码:
选择数据源、勾选表、勾选模板文件,点击生成
将生成的文件内容,分别放到对应的文件夹下,如图所示:
编写测试用例
@SpringBootTest
class CodeGenApplicationTests {
@Autowired
UserInfoMapper userInfoMapper;
@Test
void insert() {
UserInfo userInfo = new UserInfo();
userInfo.setUserId(100);
userInfo.setCity("杭州");
userInfo.setAddress("西湖");
userInfo.setStatus("ok");
userInfo.setCreateTime(new Date());
userInfo.setUpdateTime(new Date());
int i = userInfoMapper.insert(userInfo);
Assert.isTrue(i == 1, "insert fail");
Assert.isTrue(userInfo.getId() > 0, "insert fail, not set id");
}
@Test
void listAll() {
List<UserInfo> userInfos = userInfoMapper.listAll();
Assert.isTrue(userInfos.size() > 0, "insert fail");
}
@Test
void update() {
List<UserInfo> userInfos = userInfoMapper.listAll();
Assert.isTrue(userInfos.size() > 0, "insert fail");
UserInfo userInfo = userInfos.get(0);
userInfo.setStatus("err");
int i = userInfoMapper.update(userInfo);
Assert.isTrue(i == 1, "insert fail");
}
}