需求:
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; }