需求:
1.项目启动的时候,通过SQL模板文件先创建表(省的每次部署项目都要手动创建数据库,还是手动导入SQL脚本)
2.创建表之后,通过_MappingKit映射到实体,通过实体来操作。比如 User.save();
实现
1.在JFinalConfig的configPlugin 先调用初始化类去创建表。比如
public void configPlugin(Plugins me) {
// 项目初始化,创建表,配置常量类
new StartInitService().init();
// 下面采用你之前的代码,比如初始化DruidPlugin/ActiveRecordPlugin等
}2.StartInitService类中,两个方法
public void init() {
// 初始化数据库连接
ActiveRecordPlugin arp = initDbConnection();
// 创建表
Kv kv = Kv.by("table", "User");
SqlPara sql = Db.getSqlPara("create_table", kv);
Db.update(sql);
// 关闭这个插件
arp.stop();
druid.stop();
}
/**
* 初始化数据库连接
*
* @return
*/
private ActiveRecordPlugin initDbConnection() {
Prop p = PropKit.use("config.properties");
DruidPlugin druid = new DruidPlugin(p.get("jdbcUrl"), p.get("username"), p.get("password"));
ActiveRecordPlugin arp = new ActiveRecordPlugin(druid);
// sql模板
arp.addSqlTemplate("create.sql");
arp.getEngine().setSourceFactory(new ClassPathSourceFactory());
druid.start();
arp.start();
return arp;
}