Jfinal 利用自带的template Engine 获取sql =null

lemondwm 发布于 2017/08/24 22:10
阅读 267
收藏 1

config配置如下:

路径打印信息:

根据路径找到项目下的sql文件存在:

all.sql:

regist.sql

Service层获取:调试出现问题!sql=null

加载中
0
JFinal
JFinal

缺少 namespace,应该是这样获取: Db.getSql("regist.findByUserName")。 在手册中有详细的说明

JFinal
JFinal
回复 @lemondwm : 通常都是用 getSqlPara 方法,一个方法搞定 sql 与参数封装,用起来方便一个参数搞定:find(sqlPara)
lemondwm
lemondwm
恩恩,谢谢。是的,因为我看到后面那个最佳实践,才开始做的例子。实践那里没有写获取的例子。而namespace是在前面一点的知识,看了后面忘了前面的了。
0
JFinal
JFinal

我看到你的 sql 最终是被编译到 class path 之下的,所以建议用下面方式来配置更好:

Engine engine = activeRecordPlugin.getEngine();
engine.setSourceFactory(new ClassPathSourceFactory());
activeRecordPlugin.addSqlTemplate("/sql/all.sql");

注意,上面的配置不需要再配置 baseSqlTemplatePath 了, 如果要配置,则只需要配置相对于 class path 根路径的一个相对路径,例如:

activeRecordPlugin.setBaseSqlTemplatePath("/sql");

如果配置上了上面的路径,那么添加 sql 就要改成下面:

activeRecordPlugin.addSqlTemplate("all.sql");

一般在使用了 ClassPathSourceFactory 时,建议不再配置 basePath 

返回顶部
顶部