#IT明星不是梦#【从0开始Web开发实战】SpringBo


目录:1.SpringBoot集成MyBatis和MyBatisPlus2.配置和运行代码生成工具3.单元测试Service和Mapper的CRUD功能函数4.REST接口调用数据库读写功能5.问答:MyBatis Plus Generator生成entity没有get/set函数?
SpringBoot是使用最多的Java开发框架,特点是自动化配置依赖模块,提供的一系列starter脚手架便于使用,充分体现了“开箱即用”和“约定优于配置”原则。
MyBatis是一个数据库持久层框架,采用ORM架构,映射实体和数据库,对JDBC进行封装,支持定制化SQL、存储过程以及高级映射,使得开发者只需关注SQL语句和CRUD操作,而不需要处理驱动加载、创建和管理连接等复杂的过程。

MyBatis通过xml或注解的方式将要执行的操作配置起来,并通过Java对象和SQL动态参数映射,生成要执行的SQL语句,MyBatis框架执行后将结果映射为Java对象返回。
MyBatis Plus对MyBatis进一步增强、简化开发和提高效率。本文分享MyBatis Plus和代码生成器的集成方法,对Service和Mpper功能单元测试,并封装一个测试接口。
代码文件功能要点SpringBoot集成MyBatis, MyBatisPluspom.xml引入MyBatis和MyBatis Plus依赖mybatis-spring-boot-starter, mybatisplus-boot-starter, mybatisplusgeneratorapplication.yml配置数据源代码生成工具MyBatisPlusGenerator.javaMyBatis Plus提供了易用高效的代码生成工具,配置路径和包名称。生成代码文件entity, mapper, service继承基类BaseMapper和IService封装的CRUD功能函数单元测试MapperTest.java, ServiceTest.java测试CRUD操作功能调用CheckController.java增加REST接口/chk/db,测试数据库读写功能
项目代码:https://github.com/jextop/StarterApi/MyBatis-Plus官网:https://mybatis.plus/guide/
一,SpringBoot集成MyBatis和MyBatisPlus1.新建SpringBoot项目时,选中MyBatis,将自动添加MyBatis依赖。2.pom.xml中添加MyBatis Plus和Generator依赖。注意运行代码生成工具时,需要一个页面模板库,示例使用freemarker。
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.1


com.baomidou
mybatis-plus-boot-starter
3.3.0


com.baomidou
mybatis-plus-generator
3.3.0


org.springframework.boot
spring-boot-starter-freemarker
3.application.yml中配置数据源:spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
username: root
password: root
二,配置和运行代码生成工具1.MyBatis Plus提供了一个功能强大的代码生成工具AutoGenerator,在代码中修改文件路径和包名称:MyBatisPlusGenerator.java2.注意StrategyConfig.setEntityLombokModel(),Lombok默认为打开模式,建议设置为false,由于lombok对代码侵入程度较大并且依赖IDE插件,谨慎使用。3.运行MyBatisPlusGenerator.main(),开发云主机域名生成器可以放在一个独立的项目中。4.生成entity, mapper和service,继承基类BaseMapper和IService封装的CRUD功能函数。三,单元测试Mapper和Service的CRUD功能函数
CRUD是创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)4种数据库操作的首字母缩写,LogServiceImpl实现IService接口,聚合LogMapper功能:测试LogService的读写数据库功能:@SpringBootTest
public class LogServiceTest {
@Autowired
LogServiceImpl logService;

@Test
public void testSave() {
boolean ret = logService.save(new Log() {{
setSummary(String.format(“service: %s”, new Date()));
}});

LogUtil.info(ret);
Assertions.assertTrue(ret);
}

@Test
public void testList() {
List ret = logService.list(new QueryWrapper()
.orderByDesc(“id”)
.last(true, “limit 2”)
);

ret.forEach(LogUtil::info);
Assertions.assertFalse(ret.isEmpty());
}
}
四,REST接口调用数据库读写功能1.增加RestController:CheckController.java2.增加REST接口/chk/db,调用mapper读写数据库@GetMapping(value = “/chk/db”)
public Object db(@RequestAttribute(required = false) String ip) {
// Write a log to db
Log log = new Log() {{
setSummary(String.format(“db_test_%s_%s_数据库”, ip, new Date()));
}};
logMapper.insert(log);

// Read log from db
Log ret = logMapper.selectOne(new QueryWrapper()
.orderByDesc(“id”)
.eq(“summary”, log.getSummary())
);
Integer count = logMapper.selectCount(null);

return new HashMap, Object>() {{
put(“chk”, “db”);
put(“msg”, log.getSummary());
put(“status”, log.getSummary().equals(ret.getSummary()));
put(“count”, count);
}};
}
3.Postman调用接口示例
五,问答:MyBatis Plus Generator生成entity没有get/set函数?代码生成器在生成Entity时,策略配置提供了一个lombok属性,可以指定是否使用lombok模式,对应属性访问器的生成方式。lMyBatis Plus提供的代码生成器示例,打开了lombok模式:l生成的Entity包含@Data注解,将自动生成get/set函数@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class Log extends BaseEntity {
private static final long serialVersionUID = 1L;

private Integer ops;

private String summary;}
由于lombok对代码侵入程度较大并且依赖IDE插件,在不使用lombok时,只需设置属性关闭即可:StrategyConfig.setEntityLombokModel(false);lStrategyConfig默认是关闭lombok模式l设置为false或者删除该行代码,生成的Entity将生成get/set函数public class Auth extends BaseEntity {
private static final long serialVersionUID = 1L;

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}}——————————–如果您觉得这篇文章对您有帮助,请点个“赞”,博主感激不尽!Jext技术社区专注领域:软件工程实践,JIRA研发管理分布式系统架构,软件质量保障

相关推荐: 按 user 分组统计视图|全方位认识 sys 系统库

在上一篇 《按 host 分组统计视图|全方位认识 sys 系统库》 中,我们介绍了sys 系统库中按 host 分组统计的视图,类似地,本期的内容将为大家介绍按照 user 进行分类统计的视图。下面请跟随我们一起开始 sys 系统库的系统学习之旅吧。 查看活…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/06 18:54
下一篇 06/06 18:54

相关推荐