jfinal 添加 SQL 模板 路径 错误?

java.lang.RuntimeException: Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin. 

Directive not found: #SQL

Template: "/Mysql.sql". Line: 1

at com.jfinal.core.Config.startPlugins(Config.java:116)

at com.jfinal.core.Config.configJFinal(Config.java:53)

at com.jfinal.core.JFinal.init(JFinal.java:63)

at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)

at art(LifecycleBase.java:145)

Caused by: com.jfinal.template.stat.ParseException: Directive not found: #SQL

Template: "/Mysql.sql". Line: 1

at com.jfinal.template.stat.Parser.stat(Parser.java:211)

at com.jfinal.template.stat.Parser.statList(Parser.java:100)

at com.jfinal.template.stat.Parser.parse(Parser.java:90)

... 49 more


1.png2.png3.png

评论区

wangyuan

2017-09-25 15:34

求解决,感谢..............................

JFinal

2017-09-25 15:39

#SQL、#END 改为 #sql、#end 即可

wangyuan

2017-09-25 15:40

@JFinal 哎呀OK了.........谢谢

JFinal

2017-09-25 15:42

@wangyuan jfinal 模板引擎中的所有功能都可以用在 sql 管理中,例如 #if、#for #define,可以实现极为强大的功能,只需要了解一下模板引擎那一章的用法

miracle佐

2017-11-10 15:58

@JFinal 请问为什么格式化变成大写后会报错?

JFinal

2017-11-10 16:08

@miracle佐 指令是区分大小写的,如果希望不区分大小写,可以添加这几个指令的别名指令,例如:
arp.getEngine().addDirective("SQL", new SqlDirective())

只不过这样做只是支持了 sql 的大写指令,而 if for define 这些指令仍然不支持。

这个就跟 java 代码不支持大写的 IF FOR PUBLIC 是一个意思

热门反馈

扫码入社