Fetch the repository succeeded.
自动创建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以表支持。后续我也会对本项目进一步完善。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。