# touchfish-codegen **Repository Path**: chengccn1/touchfish-codegen ## Basic Information - **Project Name**: touchfish-codegen - **Description**: mybatisplus的可视化代码生成 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2020-12-14 - **Last Updated**: 2023-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # touchfish-codegen #### 介绍 mybatisplus的可视化代码生成 #### 简介 软件架构说明 使用springboot+mybatis-plus自带的代码生成做的一个可视化web代码生成 ### 特点 - 可以生成一般的entity service mapper xml controller - 在controller中自带了基本的crud以及分页查询接口 - 生成了基于vue-admin-template的api和vue 直接复制粘贴可用 ## 使用 ``` git clone本项目到本地 用ide打开 运行CodeGenApp里的main方法 打开Chrome浏览器输入localhost 数据库连接选择对应的数据库 在连接地址中输入ip端口和数据库 (mysql用户问好后面的参数不用变化) 输入用户名 密码 点击查询 结果后勾选你要生成代码的表 输如对应的作者 包名 模块名 点击下方的生成代码 生成的压缩包会自动下载 名字为codegen.zip 解压复制代码到你自己的项目 ``` ### 修改模板文件 ``` 模板文件在 touchfish-codegen/src/main/resources/templates下 你可以自己修改模板文件 来配合你自己的项目 比如 可以修改controller.java.vm中的通用返回类的导入来配合你自己的通用返回类 ``` ## TODO - 代码优化 - 前后端权限判断生成 - 模板适配 适配更多的后端/前端框架 - 在线编辑模板 - 在线查看生成的代码 - 自定义通用返回类 ## 作者其它项目 - touchfish 一个分布式开发框架(完善中 静候开源) ## 目前进度  ### 包名作者名以及其他配置如上图所示 ### 生成的文件目录  ### 测试表sql ```sql CREATE TABLE `test_user` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键', `username` varchar(255) DEFAULT NULL COMMENT '用户名', `password` varchar(255) DEFAULT NULL COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; ``` ### 生成的entity ```java package top.touchfish.test.entity; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; /** *
* *
* * @author touchfish * @since 2020-12-17 */ @TableName("test_user") public class User implements Serializable { private static final long serialVersionUID = 1L; /** * 自增主键 */ private Integer id; /** * 用户名 */ private String username; /** * 密码 */ private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username=" + username + ", password=" + password + "}"; } } ``` ### 生成的mapper接口 ```java package top.touchfish.test.mapper; import top.touchfish.test.entity.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** ** Mapper 接口 *
* * @author touchfish * @since 2020-12-17 */ public interface UserMapper extends BaseMapper* 服务类 *
* * @author touchfish * @since 2020-12-17 */ public interface UserService extends IService* 服务实现类 *
* * @author touchfish * @since 2020-12-17 */ @Service public class UserServiceImpl extends ServiceImpl* 前端控制器 *
* * @author touchfish * @since 2020-12-17 */ @RestController @RequestMapping("/test/user") public class UserController { @Autowired private UserService userService; /** * 分页查询 * * @param pageNum * @param pageSize * @param user * @return */ @GetMapping("list") public R list(Integer pageNum, Integer pageSize, User user) { if (pageNum == null || pageNum < 0) { pageNum = 1; } if (pageSize == null || pageSize < 0) { pageSize = 10; } return R.success(userService.queryPage(pageNum, pageSize, user)); } /** * 信息 */ @GetMapping("/info/{id}") public R info(@PathVariable("id") Integer id) { return R.success(userService.getById(id)); } /** * 保存 */ @PostMapping("/save") public R save(@RequestBody User user) { userService.save(user); R.success(); } /** * 修改 */ @PostMapping("/update") public R update(@RequestBody User user) { userService.updateById(user); R.success(); } /** * 删除 */ @DeleteMapping("/delete/{ids}") public R delete(@PathVariable Integer[] ids) { userService.removeByIds(Arrays.asList(ids)); R.success(); } } ``` ### 生成的mapper.xml ```xml