SpringBoot3+Vue3前后端分离的Java快速开发框架(Harry技术)配套代码生成器
项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-Plus、Knife4j等构建后端,基于Vue 3、Element-Plus 、TypeScript等构建前端的分离单体权限管理系统。
推荐阅读
SpringBoot3+Vue3前后端分离的Java快速开发框架开源啦
下载项目
项目地址:
运行项目
后端
下载harry,导入idea
-
创建数据库harry3,数据库编码为UTF-8
-
执行db/harry3_0106_all.sql文件,初始化数据
-
修改application.yml,更新MySQL账号和密码
-
IDEA运行HarryApplication.java,则可启动项目
harry3_0106_all.sql这个文件是最新得全量脚本。
前端
下载harry-vue
# 克隆代码
git clone https://gitee.com/harry-tech/harry-vue.git
# 进入项目目录
cd harry-vue
# 安装 pnpm
npm install pnpm -g
# 设置镜像源(可忽略)
pnpm config set registry https://registry.npmmirror.com
# 安装依赖
pnpm install
# 启动运行
pnpm run dev
设计表结构
创建一个demo表
CREATE TABLE `demo` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '书籍ID',
`title` varchar(255) NOT NULL COMMENT '标题',
`author` varchar(255) DEFAULT NULL COMMENT '作者',
`isbn` varchar(13) DEFAULT NULL COMMENT 'ISBN',
`description` text COMMENT '简介',
`available` tinyint(1) DEFAULT '1' COMMENT '是否可借',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`modify_by` varchar(64) DEFAULT NULL COMMENT '修改人',
`valid` int DEFAULT '1' COMMENT '有效状态,0:无效 1:有效',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='书籍表';
公共字段
id, create_time,create_by,modify_time, modify_by ,valid 建议每张表中都有这几个公共字段
配合后端BaseEntity使用,方便后续对创建人、修改人使用插件自动导入
package cn.harry.common.base;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
* 抽象实体
*
* @author harry
* @公众号 Harry技术
*/
@Getter
@Setter
public class BaseEntity implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createBy;
/**
* 创建时间
*/
@Schema(description = "创建时间")
@JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String modifyBy;
/**
* 修改时间
*/
@Schema(description = "修改时间")
@JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date modifyTime;
}
生成代码
运行前端,点击代码生成菜单,生成代码
基础配置
包名:建议都放在
cn.harry.modular下,方便模块化维护项目
字段配置
这里可以配置页面上列表显示/表单显示/以及查询方式等格式
预览
这里可以看到前后端代码生成的情况,如需调整可以返回上一步进行调整,然后下载代码,这里会生成一个压缩包,将压缩包中的代码复制到项目相应位置,根据项目情况配置菜单即可。
重新启动后页面展示
- 新增
- 修改
开发过程中不能完全依赖代码生成器,这里页面上需要稍微手动调整一下,如:新增的时候会存在ID,创建时间等字段,这里需要手动删除代码
后端生成的mapper xml 路径 demo.mapper,可以调整为 mapper.demo ,后续会继续完善代码生成器,争取减少开发过程中的手动修改
觉着有帮助,给个Star再走呗~~~
公众号搜“Harry技术”,关注我,带你看不一样的人间烟火!