JFinal

登录 注册

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


评论

  • 03-10 13:27
    跨界写 java 还写得这么好,赞
  • 03-10 13:32
    ...
  • 03-11 08:52
    牛逼
  • 03-11 17:51
    操作方式挺像JOOQ, 但写sql 往往是在 数据库工具中先写,调试成功后再放到程序中,如果这种方式拼sql,就等于又给翻译了一遍。 这种方式都感觉是理论上很美,实际用起来并不方便。
  • 03-12 10:37
    @zhangchuang 感谢分享JOOQ,,,一些业务复杂一点的动态的 sql 语言 还是需要程序控制生成的,Java 是强类型,还好,要是PHP的话,手写SQL很容易遭到 SQL注入攻击的
  • 03-12 15:44
    用得上,先收藏,感谢楼主分享
  • 03-13 17:05
    我上次也搞过类似的东西,参考的TP,而且是直接继承进去的不需要create。缺陷是结合generator使用时比较麻烦,而如果采用create的方式又每次要多敲东西。最终在下一个项目中放弃。我觉得只有在结合空模型的前提下,再加上构造器才是真正的效率利器,然而JFinal没有空模型概念。希望有朝一日JFinal能加上构造器和空模型。
  • 03-13 17:07
    这个是当时搞的一个使用示例 http://www.jfinal.com/share/1029
  • 03-13 17:15
    @flash866 啥是空模型?
  • 03-13 17:18
    @JFinal 比如 Model usersModel = new Model('users') ;
  • 03-13 17:20
    @JFinal 再结合构造器来用,就是 new Model('users').where("name","boGe").where("password","password").findFirst();
  • 03-13 17:50
    @flash866 这个与 “空模型” 有啥关系呢?
  • 03-14 08:13
    @JFinal 嗯 也可以叫动态模型
  • 03-16 15:36
    @flash866 我不想改动 JFinal 原有的那一套代码(或生成的代码),方便后续升级,自己写的那几个类只是对 JFinal 的一个辅助,对现成API的简单封装而已。。。另外,JFinal 的 DB+Record 模式,应该就是你说的“空模型”哦,,因为ThinkPHP的 findfirst() 返回的就是一个数组,而非对象实例,而 Record 其实也是对类似PHP数组的 Map对象 的简单封装,正符合你意。。。
  • 发送