jfinal感觉不是那么适合50+表,每个表50+字段以上的项目

最近用jfinal给客户开发了个项目, 零零散散开发了6个月, 中途用户的需求一变在变,开发中遇到一些问题和困惑, 也不晓得是不是我自己用的方式不对,总之, 先分享下我使用的方式以及遇到的难点吧。

给大家分享下使用jfinal开发这个项目的体验:

  1.   表过多、尤其是表字段过多的时候, 不好管理。 

    1. 这里主要体现在jfinal的Model上。 由于jfinal使用中没有javabean类, 直接使用的Model来实现数据库与bean的对应关系。 所以, 增加字段的时候很方便。 一旦涉及到修改字段时, 就需要一个个的把原字段的类型、字段名都要对应一个文件一个文件的find出来改正。 ide没有相应的错误提示, 找起来没有javabean报错时好找。 也没法用编辑器的重构功能一次性重构。

    2. 表过多还好一些, 表字段过多就有点crazy了。 每次保存的时候, 如果涉及到全部字段的保存(不是前端直接传递过来的那种), 就需要一个个的set进去。 要小心翼翼, 唯恐漏掉或写错。

  2.  ActiveRecord是个好东西, 尤其是多表联合查询的时候, 特别方便的写sql。 但一单遇到返回特别多的字段的时候, 就有点纠结了。 这里就得需要log输出一下返回的数据, 然后再一个个的再前端展示。 十来个还凑合,一上30, 我的天呐~~~

  3. 加载Enjoy的时候, 明明设置了Engine的devModel=true。 每次修改模版文件的时候, 都会导致jetty重启。 纠结~~~ 如果能模版引擎和class文件分开加载, devModel=true的时候就不重启就能加载这些文件。 啧啧~~ 世界一片美好

以上就是我目前的使用总结。  

评论区

JFinal

2018-10-12 13:37

jfinal 在 2.0 版本的时候就有 model 自动化生成 getter、setter 功能了,只要修改了字段,一键极速更新到最新版本,getter、setter 跟着变,就连 addMapping(...) 映射 Model 的也跟着变

action 查询获取数据的时候,为啥要先 log 输出再一个在前端展示呢? 直接展示就可以了,展示的时候会调用 model 的 getter 方法

每次修改模板导致重启,应该是你将模板放在了 src/main/resoures 目录下面,由于这个目录下面的所有资源会被 java 编译至 target/classes 下面,而 jfinal 是通过监控这个目录下面的文件是否则修改而重启的,这的确倒是一个问题,我这里先做下备忘,下一版本改进一下这里,这个改进很容易,只需要监控 .class 后缀的就可以了。这个反馈相当重要,因为后续的 jfinal 将向微服务迈进,所以正好模板要放在 src/main/resources 下面

感谢你反馈这么多,绝大部分反馈还是对 jfinal 用得不熟导致的,建议看一下 model 生成的文档:
http://www.jfinal.com/doc/5-4

在使用时,可在首页下载 jfinal-3.5-demo.zip 这个文件,里面有一个生成器,直接改改参数就可以用在你自己的项目中了

使用 jfinal 开发的项目 200 多张表是很常见的情况,有个别情况有超过一千张表的,用生成器生成 model 也就 2 秒左右,此外,复杂 sql 管理要全用 jfinal 的 sql 管理功能,用起来爽得没法说了:
http://www.jfinal.com/doc/5-13

j1066783215

2018-10-12 15:00

这个多字段本身就不合理吧 用什么框架都不好改 .... 可能是我太年轻

星矢

2018-10-15 23:02

@JFinal 谢谢波总的解疑。

2018-10-18 13:44

我现在的项目都300多张表了- - 。字段也是很多的 - -

星矢

2018-10-18 14:20

@谢 牛逼, 应该是我还没理解到jfinal的精髓。