1、创建一个数据库,在下面创建两张表,table_user与table_country。并向内添加数据。
2、创建一个空工程,将maven设为自己本地的
3、创建一个新的spring模块,选择配置,选择web下的springweb与SQL下的MySQL Driver和MyBatis Framework
4、pom中添加依赖,在原有依赖的基础上添加如下依赖
com.baomidou
mybatis-plus-boot-starter
3.4.0
com.alibaba
druid
1.2.3
org.projectlombok
lombok
com.baomidou
mybatis-plus-generator
3.4.1
org.apache.velocity
velocity-engine-core
2.3
5、resources文件下的application.properties改为 application.yml,添加数据库配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/db3
username: root
password: 900819
# 添加druid连接池
type: com.alibaba.druid.pool.DruidDataSource
# 隐藏spring的logo
main:
banner-mode: off
mybatis-plus:
global-config:
# 隐藏mybatis的logo
banner: false
configuration:
# 添加日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
6、创建自动生成代码的类,mybatis-plus官网有源码
AutoGenerator autoGenerator = new AutoGenerator();
//数据库配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/db3");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("900819");
autoGenerator.setDataSource(dataSourceConfig);
//全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("/Users/jokairin/IdeaProjects/SpringBoot-MyBatis-Plus-Test/springboot-MyBatis-P/src/main/java");
globalConfig.setOpen(false);//设置不打开创建好的文件
globalConfig.setAuthor("aloneFox");//设置作者
globalConfig.setFileOverride(true);//设置是否覆盖原文件
globalConfig.setMapperName("%sDao");//设置数据层接口名,%s代表占位符号,代表模块名称(Country,User)
globalConfig.setIdType(IdType.AUTO);//设置id生成策略
autoGenerator.setGlobalConfig(globalConfig);
//包名相关配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.xu");//设置生成的包
packageConfig.setEntity("domain");//设置实体类包名
packageConfig.setMapper("dao");//设置数据层包名
autoGenerator.setPackageInfo(packageConfig);
//策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("table_user","table_country");//设置当前参与生成的表名,参数为可变参数
strategyConfig.setTablePrefix("table_");//设置数据库表的前缀,模块名=数据库表名-前缀名
strategyConfig.setRestControllerStyle(true);//设置是否启用rest风格
strategyConfig.setVersionFieldName("version");//设置乐观锁字段名
strategyConfig.setLogicDeleteFieldName("deleted");//设置逻辑删除字段名
strategyConfig.setEntityLombokModel(true);//设置是否启用lombok
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
7、运行第6步写的程序,便会创建如下代码
8、dao下的所有接口添加@Mapper注解,使其可以被扫描到
9、以UserController为例,在UserController中添加CRUD功能
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@PostMapping
public String save(@RequestBody User user)
{
boolean flag = userService.save(user);
String result = flag?"添加成功":"添加失败";
return result;
}
@DeleteMapping("/{id}")
public String deleteById( @PathVariable Integer id)
{
boolean flag = userService.removeById(id);
String result = flag?"删除成功":"删除失败";
return result;
}
@PutMapping()
public String Update(@RequestBody User user)
{
boolean flag = userService.updateById(user);
String result = flag?"修改成功":"修改失败";
return result;
}
@GetMapping
public List getAll()
{
List list = userService.list();
return list;
}
@GetMapping("/{id}")
public User getById(@PathVariable Integer id)
{
User user = userService.getById(id);
return user;
}
}
10、后台功能已经完成,现在在postman中定义一些接口进行测试。
a、添加功能测试
postman中提示添加成功
idea日志可以看到添加成功的sql语句
通过命令行查看表,数据成功添加
b、删除功能测试
postman提示删除成功
idea日志可以看到删除成功的sql语句
通过命令行查看,表中数据已被标记为deleted为1
c、修改功能测试
将id为1022的刘备改为刘玄德,postman中提示修改成功
idea的日志中可以看到修改成功
d、查找全部功能测试
可以看到已经删除掉的1023 是不在全部查找范围内
e、通过id查找,查找1001与已经被删除掉的1023
可以看到1001可以被查到,而被标记为deleted的1023没有查到。



