JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)相似软件版本说明软件地址wpe绿色版查看斯沃数控仿真大全6.5查看grid6.5.0.0 官方版查看 JFinal 1.9 针对开发者最为关注的功能有20多项增强及改进。除了提供配置文件的全局支持外,还加强了在移动互联网时代对JFinal作为服务端及客户端的支持,例如XmlRender、JsonRender可极度方便地开发Xml、Json服务端程序,HttpKit可以极简地与类似于微信公众平台的API进行通信。除了功能性的增强以外,还对代码进行了优化与精简,更轻、更快、更爽 ^_^
JFinal有如下主要特点:
MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅248K,且无第三方依赖
jfinal 小例子
了解jfinal的结构和特点
先上图
1、建数据库(我用的是oracle数据库,其他的相对也差不多)
-- Create tablecreate table CLASSES ( classesid NUMBER not null, classesname VARCHAR2(20), classesaddress VARCHAR2(50) );-- Create tablecreate table STUDENT ( studentid NUMBER not null, studentname VARCHAR2(10), studentage NUMBER, studentsex VARCHAR2(2), classesid NUMBER);alter table STUDENT add constraint FK_CLASSESID foreign key (CLASSESID) references CLASSES (CLASSESID);
新建项目,我用的myeclipse,先把jar包导入
2、实体类 Classes.java
package com.demo.model;import com.jfinal.plugin.activerecord.Model;public class Classes extends Model { public static final Classes dao = new Classes(); }
Student.java
package com.demo.model;import com.jfinal.plugin.activerecord.Model;public class Student extends Model { public static final Student dao = new Student(); public Classes getClasses() { return Classes.dao.findById(get("classesid")); } }
什么这是实体类?
没错!!~ ActiveRecord 是 jfinal 最核心的组成部分之一,通过 ActiveRecord 来操作数据库,将极大地减少代码量,极大地提升开发效率,配置在后面,我这里用的是Model,Model 是 ActiveRecord 中最重要的组件之一,它充当 MVC 模式中的 Model部分。 以上代码中的 User 通过继承 Model,便立即拥有的众多方便的操作数据库的方法。在 User 中声明的 dao 静态对象是为了方便查询操作而定义的,该对象并不是必须的。 基于ActiveRecord 的 Model 无需定义属性, 无需定义 getter、 setter方法,无需 XML 配置,无需 Annotation 配置,极大降低了代码量。Model常见方法见官方API。
JFinal还有 独创 Db + Record 模式,Db 类及其配套的 Record 类, 提供了在 Model 类之外更为丰富的数据库操作功能。使用 Db 与 Record 类时,无需对数据库表进行映射,Record 相当于一个通用的 Model。Db常见方法见官方API。
JFinal 1.9 changelog
1:添加PropKit、Prop方便全局使用配置,配置文件加载默认目录改为类路径之下,符合maven习惯
2:增强jsp之下的jstl的EL输出,添加ModelRecordElResolver,JspRender.isSupportActiveRecord默认值改为false,默认使用EL增强
3:添加HttpKit及EncryptionKit方便与第三方API进行通信与加密,便于开发微信公众号这类项目
4:添加Controller.renderXml(String)方便开发xml服务端项目
5:增强FileRender,文件下载支持多线程下载以及断点续传功能
6:改进DbPro.tx()与Tx拦截器事务功能,添加对抛出Error时的回滚,增强事务安全
7:优化ActionHandler对静态资源判断性能,支持对抛出Error时写日志,方便jvm当掉时排查错误
8:提升Oracle在表数据量极大时ARP初始化性能,OracleDialect.forTableBuilderDoBuild()中sql条件改为rownum