# sql模板配置 本地"" 服务器配置外部路径(本地测试外部路径为D:\home\www-data\SmallTask\conf\sql) baseSqlTemplatePath=
/***核心代码***/ public static void mysqlInit(){ // 配置druid数据库连接池插件 DruidPlugin mysqlDruidPlugin = createMysqlDruidPlugin(); // 配置ActiveRecord插件 ActiveRecordPlugin mysqlArp = new ActiveRecordPlugin("mysql",mysqlDruidPlugin); mysqlArp.setShowSql(PropKit.getBoolean("devMode",false)); String mainSqlName = "_all_sqls.sql"; if (StringUtils.isBlank(PropKit.get("baseSqlTemplatePath"))){ mysqlArp.getEngine().setToClassPathSourceFactory(); mysqlArp.getEngine().setBaseTemplatePath("/sql"); mysqlArp.addSqlTemplate(mainSqlName); } else { mysqlArp.getEngine().setSourceFactory(new FileSourceFactory()); mysqlArp.getEngine().setBaseTemplatePath(PropKit.get("baseSqlTemplatePath")); mysqlArp.addSqlTemplate(new FileSource(PropKit.get("baseSqlTemplatePath"),mainSqlName,"utf-8")); } mysqlDruidPlugin.start(); mysqlArp.setDialect(new MysqlDialect()); mysqlArp.start(); }
sql管理入口管理文件_all_sqls.sql #namespace("mysql") #include("xxx.sql") #end #namespace("sqlserver") #include("xxx.sql") #end
源码支持:
/** * FileSource 用于从普通文件中加载模板内容 */ public class FileSource implements ISource { private String finalFileName; private String fileName; private String encoding; private long lastModified; public FileSource(String baseTemplatePath, String fileName, String encoding) { this.finalFileName = buildFinalFileName(baseTemplatePath, fileName); this.fileName = fileName; this.encoding= encoding; } public FileSource(String baseTemplatePath, String fileName) { this(baseTemplatePath, fileName, EngineConfig.DEFAULT_ENCODING); }
public ActiveRecordPlugin addSqlTemplate(com.jfinal.template.source.ISource sqlTemplate) { config.sqlKit.addSqlTemplate(sqlTemplate); return this; } public ActiveRecordPlugin setBaseSqlTemplatePath(String baseSqlTemplatePath) { config.sqlKit.setBaseSqlTemplatePath(baseSqlTemplatePath); return this; }
所以你的分享通过配置来决定 sql 模板的加载方式,对于打包后的 sql 修改很方便
感谢分享