@JFinal 你好,想跟你请教个问题:
我现在已把SQL语句写到多个xml文件中,并通过一个sqlUtil工具类put到一个Map<Sring,String>里进行管理。但这样的话,我要获取sql语句就需要频繁的读取xml文件来获取。
能不能将这个sqlUtil工具栏转换成插件,声明一个static Map<Sring,String> sqlMap;在项目启动的时候就一直存在。
使用插件是不是都要 implements IPlugin、都要有构造方法、start()和stop()?
参考PropKit,在加载配置的时候一同加载即可,不需要插件######谢谢你们的指导,我试试看。######
理解的没有问题,只要实现了IPlugin接口的就行了。
创建一个 SqlInXmlPlugin 类实现 IPlugin接口,然后在 start() 方法中加载数据,在 stop() 方法中释放资源,使用的时候在 configPlugin(Plugins me) 中这样用一下: me.add(new SqlInXmlPlugin)。
简单来说,JFinal 只是回调了你插件的 start()与 stop() 方法而已,具体在这两个方法中要做什么操作非常自由。
jfinal 提供了一个 com.jfinal.plugin.activerecord.Sqls.java 工具类用来管理外部 sql,只不过这个工具类管理的是 key、value 型格式的 sql,你使用的是 xml ,但是可以参考一下这个 Sqls。
如果不想将这个功能做成插件,可以在 YourJFinalConfig 中添加一个 public void afterJFinalStart() 方法,在此方法中初始化一下你需要的工具类即可。
######回复 @饶诗伟 : Sqls这个类支持多外部文件,可以使用Sqls.use(fileName) 来指定使用的是哪个文件中的sql,便于对sql进行分类管理,比 xml 要方便很多,少写很多代码######回复 @JFinal : 谢谢 谢谢######回复 @饶诗伟 : 必然可以处理多行啊,加外斜杠字符就打完收工了,看这里:http://my.oschina.net/u/218567/blog/160509######Sqls貌似处理不了多行的sql语句呢版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。