1 Star 1 Fork 2

wencst / wencst-autogenerator

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

wencst-autogenerator

License Wencst Author Wencst QQ

项目介绍

自动创建JPA、Entity、Dao、Service、Controller、ViewPage等内容,自动实现功能树、数据增删改查、分页等操作,集成了spring security实现简单登录功能。您只需要创建一张数据库表即可。页面逻辑目前只支持String、数字、时间类型,其他类型字段在逐步完善中。

软件架构

jdk:1.9+ spring boot:2.0.2.RELEASE freemarker lombok

使用说明

  1. 建表
CREATE TABLE `purchase_plan` (
  `id` varchar(36) NOT NULL,
  `ccode` varchar(100) DEFAULT NULL COMMENT '采购编号',
  `cname` varchar(100) DEFAULT NULL COMMENT '货物名称',
  `cstd` varchar(100) DEFAULT NULL COMMENT '货物型号',
  `fquantity` decimal(11,2) DEFAULT '0.00' COMMENT '采购数量',
  `plantime` timestamp(6) NOT NULL COMMENT '计划开始时间',
  `updatetime` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  `endtime` timestamp(6) COMMENT '完成时间',
  PRIMARY KEY (id)
) DEFAULT CHARSET=utf8 COMMENT='采购'

需要几点特殊注意:

  • 主键必须有
  • 显示字段必须有comment备注
  • 表也需要存在comment,否则功能无法展示
  • 建表语句中主键与没有comment的字段,是不展示出来的
  • 框架将为主键自动生成值
  1. 工程引入 建议直接将工程代码引入开发环境,maven再引入
  2. 准备参数
	public CoreContext config() {
		CoreContext coreContext = new CoreContext();
		coreContext.setAuthorName("wencst");//作者名字,默认为wencst
		coreContext.setParentPackage("com.wencst.generator.test");//设置代码生成包位置(包括controller、service、bean)
		coreContext.setURL("jdbc:mysql://localhost:3306/apstools?useSSL=false&useUnicode=true&characterEncoding=utf8");//读取的数据库连接
		coreContext.setUsername("root");//数据库用户名
		coreContext.setPassword("root");//数据库密码
		coreContext.setDriver("com.mysql.jdbc.Driver");//数据库驱动
		coreContext.addTableNames("purchase_plan");//所生成的数据库表,可以add多个,会同时生成在一个文件夹下
		return coreContext;
	}
  1. 执行生成方法
import com.wencst.generateJPA.RunBuild;
RunBuild.build(coreContext);

当然,也可以实现RunBuild中的内容,并选择性的使用生成代码

public static void build(CoreContext coreContext) {
	IDatabase db = new DefaultDB(coreContext);//目前支持的接口DefaultDB、MysqlDB,其他的欢迎开源爱好者补充
	List<TableBean> ltb = db.getAllTables();
	IBuilder ib = null;
	for (TableBean tb : ltb) {
		coreContext.setTb(tb);//设置当前执行的TableBean
		ib = new DomainBuilder(coreContext);//生成Bean
		ib.build();
		ib = new DaoBuilder(coreContext);//生成DAO
		ib.build();
		ib = new ServiceBuilder(coreContext);//生成Service
		ib.build();
		ib = new ControllerBuilder(coreContext);//生成Controller
		ib.build();
		ib = new ListPageBuilder(coreContext);//生成列表页
		ib.build();
		ib = new DataPageBuilder(coreContext);//生成数据编辑页(新增页)
		ib.build();
		ib = new DetailPageBuilder(coreContext);//生成详情展示页
		ib.build();
		ib = new MenuBuilder(coreContext);//添加菜单列表
		ib.build();
		log.info("finish build {} \n JsonObject:{}"
				,tb.getTableName()
				,JSONObject.toJSONString(tb));
	}
}
  1. 启动方法 本项目支持spring boot启动,请在spring boot启动时增加com.wencst包的加载,否则部分主要类将无法启动。
@SpringBootApplication(scanBasePackages = {"com.xxx","com.wencst"})

6.登录 启动后,本项目支持登录功能,目前登录用户有两个admin和wencst,密码为1234。

强烈建议重写com.wencst.security.handler.UserService.getUserByName(String username)方法,以保证安全性。

  1. 扩展 本项目当然支持扩展,开源爱好者可以随意扩展。

本项目做了三层抽象,支持的扩展有:

//第一层,接口层
com.wencst.generateJPA.database.IDatabase;//数据库接口,便于各种类型数据库的格式读取操作
com.wencst.generateJPA.builder.IBuilder;//生成类和页面的主要接口
//第二层,抽象类
abstract class com.wencst.generateJPA.builder.java.AbstractJavaBuilder implements IBuilder;//主要用于java类的生成
abstract class com.wencst.generateJPA.builder.web.AbstractHtmlBuilder implements IBuilder;//主要用于html页面的生成
abstract class com.wencst.generateJPA.builder.json.AbstractJsonBuilder implements IBuilder;//主要用于json数据的生成
//第三层,各类html页面也可以扩展,本项目支持freemarker模板语言

如果觉得本项目对您有用,请给本项目star以表支持。后续我也会对本项目进一步完善。

参与贡献

  1. Fork 本项目
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

码云特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. 码云官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解码云上的优秀开源项目
  4. GVP 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
  5. 码云官方提供的使用手册 https://gitee.com/help
  6. 码云封面人物是一档用来展示码云会员风采的栏目 https://gitee.com/gitee-stars/

About

自动创建JPA、Entity、Dao、Service、Controller、ViewPage等内容,自动实现增删改查等操作。您只需要创建一张数据库表即可。 expand collapse
Java
Apache-2.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Java
1
https://gitee.com/wencst/wencst-autogenerator.git
git@gitee.com:wencst/wencst-autogenerator.git
wencst
wencst-autogenerator
wencst-autogenerator
master

Search