This action will force synchronization from wencst/wencst-autogenerator, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
自动创建JPA、Entity、Dao、Service、Controller、ViewPage等内容,自动实现功能树、数据增删改查、分页等操作,集成了spring security实现简单登录功能。您只需要创建一张数据库表即可。页面逻辑目前只支持String、数字、时间类型,其他类型字段在逐步完善中。
jdk:1.9+ spring boot:2.0.2.RELEASE freemarker lombok
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='采购'
需要几点特殊注意:
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;
}
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));
}
}
@SpringBootApplication(scanBasePackages = {"com.xxx","com.wencst"})
6.登录 启动后,本项目支持登录功能,目前登录用户有两个admin和wencst,密码为1234。
强烈建议重写com.wencst.security.handler.UserService.getUserByName(String username)方法,以保证安全性。
本项目做了三层抽象,支持的扩展有:
//第一层,接口层
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以表支持。后续我也会对本项目进一步完善。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。