Spring|Spring Boot 简单整合 fluent-mybatis 实现数据的增删改查
总是喜欢去关注更多的新框架,发现了一个基本上不用写mapper和xml的框架。让我们来研究一下这个框架吧。1. 新建Spring Boot项目
1.1 pom.xml配置
1.8
1.6.13
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
runtime
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
com.github.atool
fluent-mybatis
${fluent-mybatis.version}
com.github.atool
fluent-mybatis-processor
${fluent-mybatis.version}
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.2.0
我们这里引入了fluent-mybatis-processor就是想自动生成代码,尽量减少我们自己写代码。
1.2 application.yml配置
server:
port: 8080 # 端口号
spring:
datasource: # 数据库参数配置
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://IP:3306/数据库名称?useUnicode=true&characterEncoding=utf8
username: 用户名
password: 密码
1.3 EntityGeneratorTests.java 自动代码生成 这个我尝试过在非Test里面用main里面运行,结果总是失败,有可以运行的请告诉我哈!
@SpringBootTest
public class EntityGeneratorTests {// 数据源 url
static final String url = "jdbc:mysql://IP:3306/数据库名称?useUnicode=true&characterEncoding=utf8";
// 数据库用户名
static final String username = "用户名";
// 数据库密码
static final String password = "密码";
@Test
public void generate() {
// 引用配置类,build方法允许有多个配置类
FileGenerator.build(Empty.class);
}@Tables(
// 设置数据库连接信息
url = url, username = username, password = password,
// 设置entity类生成src目录, 相对于 user.dir
srcDir = "src/main/java",
// 设置entity类的package值
basePack = "xyz.zhouzhaodong.fluentmybatis",
// 设置dao接口和实现的src目录, 相对于 user.dir
daoDir = "src/main/java",
// 设置哪些表要生成Entity文件
tables = {@Table(value = https://www.it610.com/article/{"user"})}
)
static class Empty { //类名随便取, 只是配置定义的一个载体
}}
运行后生成如下三个文件:
文章图片
1.4 生成代码后编译会在target目录生成代码
文章图片
运行后生成的代码如下:
文章图片
1.5 启动类配置 @MapperScan @MapperScan地址为上面target目录下的mapper
可参考我的:
文章图片
1.6 新建UserController测试 可以参考官方文档进行研究,我这里只是简单的进行逻辑的实现。
文档地址为:
https://gitee.com/fluent-myba...
@RestController
@RequestMapping("/user")
public class UserController {@Resource
UserDao userDao;
@Resource
UserMapper userMapper;
/**
* 根据ID查询数据1
* @param id
* @return
*/
@GetMapping("/getByIdOne")
public UserEntity getByIdOne(Integer id){
return userDao.selectById(id);
}/**
* 根据ID查询数据2
* @param id
* @return
*/
@GetMapping("/getByIdTwo")
public UserEntity getByIdTwo(Integer id){
UserQuery query = new UserQuery().where.id().eq(id).end();
return userMapper.findOne(query);
}/**
* 根据ID删除
* @param id
*/
@GetMapping("/deleteById")
public void deleteById(Integer id){
userDao.deleteById(id);
}/**
* 根据ID进行更新
* @param userEntity
* @return
*/
@PostMapping("/updateById")
public UserEntity updateById(@RequestBody UserEntity userEntity){
boolean b = userDao.updateById(userEntity);
if (b){
return userDao.selectById(userEntity.getId());
}
return null;
}/**
* 新增
* @param userEntity
* @return
*/
@PostMapping("/insert")
public Integer insert(@RequestBody UserEntity userEntity){
return userDao.save(userEntity);
}
}
接下来进行测试:
1.6.1 getByIdOne
文章图片
1.6.2 getByTwo
文章图片
1.6.3 deleteById
文章图片
1.6.4 insert
文章图片
1.6.5 updateById
文章图片
简单测试通过!
源代码地址:
https://gitee.com/zhouzhaodon...
个人博客地址:
【Spring|Spring Boot 简单整合 fluent-mybatis 实现数据的增删改查】http://www.zhouzhaodong.xyz/
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- 科学养胃,别被忽悠,其实真的很简单
- SpringBoot调用公共模块的自定义注解失效的解决
- opencv|opencv C++模板匹配的简单实现
- 解决SpringBoot引用别的模块无法注入的问题
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- 简单心理2019春A期+32+张荣
- 《算法》-图[有向图]
- android防止连续点击的简单实现(kotlin)