在项目中查询报表/列表,免不了遇到SQL非常复杂的情况,一坨坨几十行的sql语句,放在java代码里,不好维护,调试,不好看! 不好看是重点..
背景:
以前的工作经历基本都是用mybatis,所以刚接触jfinal略不习惯,总想找个类似mybatis的替代品,oschina上看了很多 beetsql、jssql等等等,功能都挺强大的,然而<% %> 这种风格写ifelse的判断实在是无法接受,然后就放弃了...
在正式使用jfinal开发的小半年里,一直避免使用超长sql的使用场景,但是还是遇到了几个无法规避的功能写的sql又长又搓-。-,在DreamLu的帮助下,初成品来了,仅仅最基本的存放sql功能。
举个栗子:
存放路径丢在同级目录下,主要考虑更新生产环境,打成jar包,丢上去就好了,不用xml文件在传一次。
分页的使用:
单条的使用:
避免了又丑又长的sql耦合在代码中,跟代码的时候眼睛都看花了。
不足之处:
最常用的if else 判断都没有,所以写sql的时候就要变着法的写,所有可能需要分支判断的参数都设计一个默认值,比如查询时间[全部],正常是这个查询条件就没了,这里只能把1970-1-1的时间传进来。 其他几的类似处理。
坐等DreamLu大神easy4Jfinal中的sqlxml插件~~~
最后附上代码
从类同级目录下读取:is_local是用来判断是本机还是生产环境读取jar
在附上从resource目录下读取的代码:
直接上代码,提交的时候格式会被自动压缩-,-,所以只能上图了
掏出好久没用的github给有需要的小伙伴下载工具类:
https://github.com/linbq-b7/JFinal4sqlxml