1.添加依赖
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>关于依赖的版本,可以到项目官网查看,mybatis-spring-boot-starter的项目地址是https://github.com/mybatis/spring-boot-starter,readme里可以看到版本匹配关系,tags里可以看到版本号
2.添加代码生成插件,使用的插件是MyBatis官方提供的MyBatis Generator
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <configurationFile> src/main/resources/mybatis/generatorConfig.xml </configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> </dependencies> </plugin>3.添加config包,在config包下创建Mybatis配置类
1package cn.gintone.guard.config; 2 3import org.apache.ibatis.session.SqlSessionFactory; 4import org.mybatis.spring.SqlSessionFactoryBean; 5import org.mybatis.spring.annotation.MapperScan; 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.context.annotation.Bean; 8import org.springframework.context.annotation.Configuration; 9import org.springframework.core.io.support.PathMatchingResourcePatternResolver; 10 11import javax.sql.DataSource; 12 13@Configuration 14@MapperScan("cn.gintone.guard.**.dao") 15public class MybatisConfig { 16 @Autowired 17 private DataSource dataSource; 18 19 @Bean 20 public SqlSessionFactory sqlSessionFactory() throws Exception{ 21 SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); 22 sessionFactoryBean.setDataSource(dataSource); 23 sessionFactoryBean.setTypeAliasesPackage("cn.gintone.guard.**.model");//扫描Model 24 PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); 25 sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:**/sqlmap/*.xml"));//扫描映射文件 26 return sessionFactoryBean.getObject(); 27 } 28}
遇到了@MapperScan注解不识别的问题,修改mybatis-spring-boot-starter的版本号为2.0.0,问题解决,再改回2.1.1还是可以用
4.修改application.yml,添加数据源配置
1spring: 2 datasource: 3 driver-class-name: com.mysql.cj.jdbc.Driver 4 url: jdbc:mysql://localhost:3306/guard?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai 5 username: root 6 password: 123456
5.创建数据表
1DROP TABLE IF EXISTS `sys_user`; 2CREATE TABLE `sys_user` ( 3 `id` bigint(20) NOT NULL COMMENT '编号', 4 `name` varchar(50) NOT NULL COMMENT '用户名', 5 `nick_name` varchar(150) DEFAULT NULL COMMENT '昵称', 6 `avatar` varchar(150) DEFAULT NULL COMMENT '头像', 7 `password` varchar(100) DEFAULT NULL COMMENT '密码', 8 `salt` varchar(40) DEFAULT NULL COMMENT '加密盐', 9 `email` varchar(100) DEFAULT NULL COMMENT '邮箱', 10 `mobile` varchar(100) DEFAULT NULL COMMENT '手机号', 11 `status` tinyint(4) DEFAULT NULL COMMENT '状态 0:禁用 1:正常', 12 `dept_id` bigint(20) DEFAULT NULL COMMENT '机构ID', 13 `create_by` varchar(50) DEFAULT NULL COMMENT '创建人', 14 `create_time` datetime DEFAULT NULL COMMENT '创建时间', 15 `last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人', 16 `last_update_time` datetime DEFAULT NULL COMMENT '更新时间', 17 `del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除 -1:已删除 0:正常', 18 PRIMARY KEY (`id`), 19 UNIQUE KEY `name` (`name`), 20 UNIQUE KEY `nick_name_UNIQUE` (`nick_name`) 21) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户管理'; 22 23INSERT INTO `sys_user` VALUES ('1', 'admin', '超管', null, 'bd1718f058d8a02468134432b8656a86', 'YzcmCZNvbXocrsz9dm8e', 'admin@qq.com', '13612345678', '1', '4', 'admin', '2020-09-19 11:11:11', 'admin', '2020-09-19 11:11:11', '0');
6.生成MyBatis模块,包括Model,DAO,XML映射文件,手动编写比较麻烦,使用上面配置的插件自动生成

在idea中找到生成命令,双击即可
7.编写服务接口
1package cn.gintone.guard.service.impl; 2 3import cn.gintone.guard.dao.SysUserMapper; 4import cn.gintone.guard.model.SysUser; 5import cn.gintone.guard.service.SysUserService; 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.stereotype.Service; 8 9import java.util.List; 10@Service 11public class SysUserServiceImpl implements SysUserService { 12 @Autowired 13 private SysUserMapper sysUserMapper; 14 @Override 15 public List<SysUser> selectAll() { 16 return sysUserMapper.selectAll(); 17 } 18}
8.编写控制器
1package cn.gintone.guard.controller; 2 3import cn.gintone.guard.service.SysUserService; 4import org.springframework.beans.factory.annotation.Autowired; 5import org.springframework.web.bind.annotation.GetMapping; 6import org.springframework.web.bind.annotation.RequestMapping; 7import org.springframework.web.bind.annotation.RestController; 8 9@RestController 10@RequestMapping("user") 11public class SysUserController { 12 @Autowired 13 private SysUserService sysUserService; 14 @GetMapping("/all") 15 public Object selectAll(){ 16 return sysUserService.selectAll(); 17 } 18}
9.运行测试


完整前后台代码托管在gitee上,地址 https://gitee.com/gintone/Guard