课程表

JFinal课程

工具箱
速查手册

JFinal 体验

当前位置:免费教程 » Java相关 » JFinal

极速 体验 Generator

   JFinal 2.1 新增了 Generator 用来极速生成 Model、BaseModel、MappingKit、DataDictionary文件 。 使 用 时 通 常 只 需 配 置 Generator 的 四 个 参 数 即 可 : baseModelPackageName 、 baseModelOutputDir、modelPackageName、modelOutputDir。四个参数分别表示 baseMode 的包 名,baseModel 的输出路径,modle 的包名,model 的输出路径,以下是示例代码:

  1. // base model 所使用的包名
  2. String baseModelPkg = "model.base";
  3. // base model 文件保存路径
  4. String baseModelDir = PathKit.getWebRootPath() + "/../src/model/base";
  5. // model 所使用的包名
  6. String modelPkg = "model";
  7. // model 文件保存路径
  8. String modelDir = baseModelDir+ "/..";
  9. Generator gernerator = new Generator(dataSource, baseModelPkg, baseModelDir,modelPkg, modelDir);
  10. gernerator.generate();

可在 JFinal 官网下载源码直接用于项目:http://www.jfinal.com


相关生成文件

BaseModel是用于被最终的 Model 继承的基类,所有的 getter、setter方法都将生成在此文 件内,这样就保障了最终 Model 的清爽与干净,BaseModel不需要人工维护,在数据库有任何 变化时重新生成一次即可。

MappingKit用于生成table 到 Model 的映射关系,并且会生成主键/复合主键的配置,也即 在 JFinal 2.1 中无需在 configPlugin(Plugins me)方法中书写任何样板式的映射代码。

DataDictionary 是指生成的数据字典,会生成数据表所有字段的名称、类型、长度、备注、是否主键等信息。


Model 与 Bean 合体后主要优势

  • 充分利用海量的针对于 Bean 设计的第三方工具,例如 jackson、freemarker
  • 快速响应数据库表变动,极速重构,提升开发效率,提升代码质量
  • 拥有 IDE 代码提示不用记忆数据表字段名,消除记忆负担,避免手写字段名出现手误
  • BaseModel 设计令 Model 中依然保持清爽,在表结构变化时极速重构关联代码
  • 自动化 table 至 Model 映射
  • 自动化主键、复合主键名称识别与映射
  • MappingKit 承载映射代码,JFinalConfig 保持干净清爽
  • 有利于分布式场景和无数据源时使用 Model
  • 新设计避免了以往自动扫描映射设计的若干缺点:引入新概念(如注解)增加学习成本、性 能低、jar 包扫描可靠性与安全性低

Model 与 Bean 合体后注意事项

  • 合体后 JSP 模板输出 Bean 中的数据将依赖其 getter 方法,输出的变量名即为 getter 方法去 掉”get”前缀字符后剩下的字符首字母变小写,如果希望 JSP 仍然使用之前的输出方式,可 以在系统启动时调用一下 ModelRecordElResolver. setResolveBeanAsModel(true);
  • Controller  之中的 getModel()需要表单域名称对应于数据表字段名,而 getBean()则依赖于 setter 方法,表单域名对应于 setter 方法去掉”set”前缀字符后剩下的字符串字母变小写。
  • 许多类似于 jackson、fastjson 的第三方工具依赖于 Bean 的 getter 方法进行操作,所以只有 合体后才可以使用 jackson、fastjson
  • JFinalJson 将 Model 转换为 json 数据时,json 的 keyName 是原始的数据表字段名,而 jackson、 fastjson 这类依赖于 getter 方法转化成的 json 的 keyName 是数据表字段名转换而成的驼峰 命名
  • 建议 mysql 数据表的字段名直接使用驼峰命名,这样可以令 json 的 keyName 完全一致, 也可以使 JSP 在页面中取值时使用完全一致的属性名。注意:mysql 数据表的名称仍然使 用下划线命名方式并使用小写字母,方便在 linux 与 windows 系统之间移植。
  • 总之,合体后的 Bean 在使用时要清楚使用的是其 BaseModel 中的 getter、setter 方法还是 其 Model 中的 get(String attrName)方法
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号