1、创建一个数据库,在下面创建两张表,table_user与table_country。并向内添加数据。
2、创建一个空工程,将maven设为自己本地的
3、创建一个新的spring模块,选择配置,选择web下的springweb与SQL下的MySQL Driver和MyBatis Framework
4、pom中添加依赖,在原有依赖的基础上添加如下依赖
<!-- mybatis-plus依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <!-- druid依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.3</version> </dependency> <!-- lombok简化实体类书写依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- 代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!-- velocity模版引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
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; /** * 增加 * @param user * @return */ @PostMapping public String save(@RequestBody User user) { boolean flag = userService.save(user); String result = flag?"添加成功":"添加失败"; return result; } /** * 通过id删除 * @param id * @return */ @DeleteMapping("/{id}") public String deleteById( @PathVariable Integer id) { boolean flag = userService.removeById(id); String result = flag?"删除成功":"删除失败"; return result; } /** * 修改数据 * @param user * @return */ @PutMapping() public String Update(@RequestBody User user) { boolean flag = userService.updateById(user); String result = flag?"修改成功":"修改失败"; return result; } /** * 查询所有 * @return */ @GetMapping public List<User> getAll() { List<User> list = userService.list(); return list; } /** * 通过id查询 * @param id * @return */ @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没有查到。