当前位置: 首页 > news >正文

【springboot】使用代码生成器快速开发

接上一项目,使用mybatis-plus-generator实现简易代码文件生成

fast-demo-web模块中的pom.xml中添加mybatis-plus-generatorfreemarkerLombok依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.7</version>
</dependency>
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId>
</dependency>
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

因为生成器代码一般只使用一次即可,项目打包时并不需要打包该代码,所以这里就在fast-demo-dao模块中的src/test/java目录下写生成器代码,要使用时运行一次即可

新建CodeGenerator

public class CodeGenerator {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/my_demo?useUnicode=true&characterEncoding=UTF-8";String username = "root";String password = "123456";String moduleName = "sys";  // 模块名String mapperPath = "E:\\java\\fast-demo\\fast-demo-web\\fast-demo-dao\\src\\main\\resources\\mapper\\" + moduleName;  // mapper文件存放位置String tables = "sys_user,sys_role,sys_menu,sys_user_role,sys_role_menu";   // 需要生成对应代码的表FastAutoGenerator.create(url, username, password).globalConfig(builder -> {builder.author("cyfy") // 设置作者.enableSwagger() // 开启 swagger 模式.outputDir("E:\\java\\fast-demo\\fast-demo-web\\fast-demo-dao\\src\\main\\java"); // 指定输出目录}).dataSourceConfig(builder ->builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {int typeCode = metaInfo.getJdbcType().TYPE_CODE;if (typeCode == Types.SMALLINT) {// 自定义类型转换return DbColumnType.INTEGER;}return typeRegistry.getColumnType(metaInfo);})).packageConfig(builder ->builder.parent("com.cyfy.fastdemo") // 设置父包名.moduleName(moduleName) // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath)) // 设置mapperXml生成路径).strategyConfig(builder ->builder.addInclude(tables) // 设置需要生成的表名.addTablePrefix("sys_") // 设置过滤表前缀).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

这里因为官网的快速生成代码是根据3.5.7版本写的,项目之前用的mybatis-plus是3.5.2,因为赖得找之前3.5.2版本的CodeGenerator代码,所以这里直接将版本提升至3.5.7

执行代码后

在这里插入图片描述

fast-demo-dao模块中会根据数据库自动生成对应的controller、service、mapper、entity等简单的代码文件

在这里插入图片描述

根据所需,将生成的文件移至不同模块中

在这里插入图片描述

将之前写的UserService、UserController、UserServiceImpl代码复制粘贴至对应文件

UserController

@RestController
@Api("用户信息接口")
@RequestMapping("/sys")
public class UserController {@Autowiredprivate IUserService userService;@Autowiredprivate RedisConfig redis;@RequestMapping(value = "/user",method = RequestMethod.GET)@ApiOperation(value = "获取所有用户信息", notes = "返回用户信息")public List<User> getUserList(){List<User> userList = userService.getUserList();// redis.set("userList",userList.toString());return userList;}
}

IUserService

public interface IUserService extends IService<User> {List<User> getUserList();
}

UserServiceImpl

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {@Autowired(required=false)private UserMapper userMapper;@Overridepublic List<User> getUserList() {return userMapper.selectList(null);}
}

UserMapper

@Mapper
public interface UserMapper extends BaseMapper<User> {}

运行项目后,我们依旧能访问http://localhost:8080/swagger-ui.html

在这里插入图片描述这里使用CodeGenerator生成代码后,直接运行项目可能会报org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService';的错误,是因为代码生成器生成的mapper文件代码中没有@Mapper注解,spring无法扫描识别mapper文件。给所有mapper类加上@Mapper注解即可运行成功


http://www.mrgr.cn/news/44881.html

相关文章:

  • 跨 VLAN 通信
  • 泛函分析精解【3】
  • Java 中使用 JavaScript Nashorn 引擎
  • 算法笔记(十三)——BFS 解决最短路问题
  • Windows下Jenkins控制台中文乱码
  • XTuner微调个人小助手认知
  • 如何将 cryptopp库移植到UE5内
  • @Transactional声明式事务回调编程
  • SpringBootWeb快速入门!详解如何创建一个简单的SpringBoot项目?
  • Bloom Filter 布隆过滤器
  • 1.两数之和
  • Python中对象obj类型确定最pythonic的方式——isinstance()函数
  • Chrome浏览器调用ActiveX控件--allWebOffice控件功能介绍
  • 联想服务器配置阵列、安装操作系统
  • 【自动驾驶】最近计划看的论文
  • Ajax教程
  • vivado 使用 UltraFast 设计方法系统级设计流程图
  • 图像分割恢复方法
  • 【重学 MySQL】五十九、二进制字符串类型与 JSON 类型
  • 【OpenCV】 Python 图像处理 入门