Java SQL查询构造器 For JFinal

sqlHelper:SQL查询构造器

搞了几年的PHP开发,接触到好些PHP框架,数据库模型这块,发现CodeIgniter框架的语法非常 通俗易懂,也容易记。

最近在学习Java,接触到JFinal框架,使用起来也非常简单,有点脚本语言的味道,但是模型这块,打算让它更好玩一些。

于是,想到把CodeIgniter框架的这套模型语法搬到JFinal框架上来,这样就可以节省手写SQL字符串的时间。

核心文件

主要用到2个类文件:

(1) SqlHelper.java : 专门用来拼接SQL字符串的,最终输出完整的SQL语句;

(2) DbHelper.java : 继承了SqlHelper类,简单封装了JFinal框架执行SQL语句的API,让自己有执行SQL语句的能力;

(3) ModelHelper.java:继承了SqlHelper类,简单封装了 Model 实例,让自己有 Model API 功能;

语法如下



Github地址:

https://github.com/wen-jianbao/sqlHelper


评论区

JFinal

2019-03-10 13:27

跨界写 java 还写得这么好,赞

zhangtianxiao

2019-03-10 13:32

xialinlin

2019-03-11 08:52

牛逼

zhangchuang

2019-03-11 17:51

操作方式挺像JOOQ, 但写sql 往往是在 数据库工具中先写,调试成功后再放到程序中,如果这种方式拼sql,就等于又给翻译了一遍。 这种方式都感觉是理论上很美,实际用起来并不方便。

lesjava

2019-03-12 10:37

@zhangchuang 感谢分享JOOQ,,,一些业务复杂一点的动态的 sql 语言 还是需要程序控制生成的,Java 是强类型,还好,要是PHP的话,手写SQL很容易遭到 SQL注入攻击的

北流家园网

2019-03-12 15:44

用得上,先收藏,感谢楼主分享

flash866

2019-03-13 17:05

我上次也搞过类似的东西,参考的TP,而且是直接继承进去的不需要create。缺陷是结合generator使用时比较麻烦,而如果采用create的方式又每次要多敲东西。最终在下一个项目中放弃。我觉得只有在结合空模型的前提下,再加上构造器才是真正的效率利器,然而JFinal没有空模型概念。希望有朝一日JFinal能加上构造器和空模型。

flash866

2019-03-13 17:07

这个是当时搞的一个使用示例 http://www.jfinal.com/share/1029

JFinal

2019-03-13 17:15

@flash866 啥是空模型?

flash866

2019-03-13 17:18

@JFinal 比如 Model usersModel = new Model('users') ;

flash866

2019-03-13 17:20

@JFinal 再结合构造器来用,就是 new Model('users').where("name","boGe").where("password","password").findFirst();

JFinal

2019-03-13 17:50

@flash866 这个与 “空模型” 有啥关系呢?

flash866

2019-03-14 08:13

@JFinal 嗯 也可以叫动态模型

lesjava

2019-03-16 15:36

@flash866 我不想改动 JFinal 原有的那一套代码(或生成的代码),方便后续升级,自己写的那几个类只是对 JFinal 的一个辅助,对现成API的简单封装而已。。。另外,JFinal 的 DB+Record 模式,应该就是你说的“空模型”哦,,因为ThinkPHP的 findfirst() 返回的就是一个数组,而非对象实例,而 Record 其实也是对类似PHP数组的 Map对象 的简单封装,正符合你意。。。