JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
JFinal 1.9 针对开发者最为关注的功能有20多项增强及改进。除了提供配置文件的全局支持外,还加强了在移动互联网时代对JFinal作为服务端及客户端的支持,例如XmlRender、JsonRender可极度方便地开发Xml、Json服务端程序,HttpKit可以极简地与类似于微信公众平台的API进行通信。除了功能性的增强以外,还对代码进行了优化与精简,更轻、更快、更爽 ^_^
MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅248K,且无第三方依赖
了解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<Classes> { public static final Classes dao = new Classes();
}
Student.java
package com.demo.model;import com.jfinal.plugin.activerecord.Model;public class Student extends Model<Student> { 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。
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<1,fillStatement()添加对Timestamp的判断
9:优化JsonRender,添加JsonRender.addExcludeAttrs()方法,可以排除renderJson()时不想转换为json的属性,默认已经排除tomcat开启SSL后自动生成的属性,方便tomcat支持SSL
10:优化 StrKit.firstCharToLowerCase、firstCharToUpperCase,性能提升 2.1 倍
11:增强HandlerKit,添加renderError404(),方便在Handler中使用404页面进行渲染
12:增强FakeStaticHandler,支持对非伪静态action请求的过滤
13:精简JFinalConfig与配置加载、读取有关代码
14:ICallback.run()更名为call()
15:开放Table.getColumnTypeMap()方便开发者扩展ARP功能,并使其返回的map为只读确保安全
16:添加Controller.renderText(String, ContentType)方便各种Content Type的text渲染
17:添加com.jfinal.plugin.activerecord.OrderedFieldContainerFactory 类,方便开发数据库查询工具项目,以便model中的属性迭代输出顺序与sql select后的字段次序保持一致
18:优化DruidPlugin,driverClass 默认值改为 null,以便让新版本Druid自动探测该值
19:改进EhCachePlugin,添加RenderInfo、RenderType解决对render对象缓存时线程安全问题
20:优化SessionInViewInterceptor,跳过处理JsonRender提升性能
21:支持Controller内public无参方法成为非action,添加com.jfinal.ext.interceptor.NotAction,通常用于在拦截器中需要控制器提供public无参方法的场景
22:优化JsonKit,listToJson、mapToJson方法可见性改为private,对这些方法有依赖的代码可改为调用toJson()方法
23:优化Render,去掉对Serializable接口的实现,删除所有Render继承类中的transient关键字以及serialVersionUID属性
文件清单及使用说明
1:jfinal-1.9-bin.jar
开发 jfinal 项目唯一必须的 jar 包,其它所有 jar 包都不是必须的
2:jfinal-1.9-src.zip
jfinal 1.9 源代码
3:jfinal-1.9-bin-with-src.jar
jfinal 1.9 开发包 + 源码 的整合,方便非 maven 开发者在开发时调试和查看源码,从而不用再单独绑定 jfinal-1.9-src.zip 就可以在 IDE 中查看源码
4:jetty-server-8.1.8.jar
jetty-server-8.1.8.jar 用来支持无需额外安装 tomcat jetty 等 web server
即可开始开发,同时它也是支持热部署的必要包。特别注意在使用tomcat开发或部署时需要去掉 jetty-server-8.1.8.jar 包,以免引起冲突
5:jfinal-1.9-lib 目录下所有 jar 包
为开发者准备的常用且可能用到的 jar 包,方便非 maven 用户取用。详情请见 jfinal-1.9-lib 目录下的说明文件:“jfinal-1.9-库文件依赖及使用说明.txt”
开发者其他应用
七猫免费阅读小说最新版41.6M234049人在玩七猫免费阅读小说下载安装app,七猫免费阅读小说app不一样的小说阅读神器,这里有着海量丰富小说应用资源,你想看的小说通过强大搜索引擎一键搜索即可,主要的是阅读小说还能够获取红包现金奖励哦。
下载奇热漫画app安卓版25.5M13451人在玩奇热漫画是一款非常不错的漫画阅读软件,具有很多强大的阅读功能,奇热漫画app实时为你更新全网最新最热的动漫资源。平台拥有海量精彩漫画,官方正版漫画
下载奇热小说app24.8M234499人在玩安卓奇热小说app是专为众多爱看小说的人士提供的手机看小说的软件,省流量极速免费看小说,海量热门小说任你看,喜欢小说的小伙伴不要错过,赶快下载奇热小说网手机版客户端体验吧
下载2022快看漫画App最新版69.0M51448人在玩2022快看漫画,相信许多玩微博的小伙伴们都已经知道这款APP了。吵架归吵架,至于这款快看漫画App到底做得怎么样,只有试过才知道!
下载豆瓣阅读客户端app70.2M9579人在玩豆瓣阅读app是一款为豆瓣的用户们量身定做的APP,在豆瓣阅读这里你可以看到更加符合豆瓣用户喜好的各类文字作品,而且目前书籍依然在持续增长中。
下载追书神器官方版70.1M19679人在玩追书神器2022最新版是一款超级强力的小说导读助手,目前几大热门的小说连载网站均有关联,你可以通过它方便地寻找自己喜欢的书籍。
下载腾讯动漫71.9M13609人在玩腾讯动漫寒假档,许多大人们认为动漫就是小孩子看的东西,但是大概从80后开始,动漫就成为了许多人生活中的一部分,如果你喜欢看动漫,可以来腾讯动漫吧,这里有最新动漫更新视频
下载书旗小说免费版本32.7M22553人在玩书旗小说免费版下载安装,书旗小说免费版本是一款以书旗网海量小说为基础的在线/离线阅读器,集合在线阅读、本地阅读、书包下载、自动书签、智能搜索、阅读设置等多项人性化功能。
下载搜狗阅读器app19.5M6809人在玩搜狗阅读是搜狗公司依托于搜狗搜索的丰富资源,为安卓用户打造的移动阅读应用产品。搜狗阅读海量图书即搜即看,新闻大事掌握在手,更有离线缓存、精品推荐、更新提醒等功能,让您随时随地享受阅读的快乐。
下载起点读书app新版本202237.2M11875人在玩起点读书app新版本,又名起点看书,是起点中文网推出的一款阅读软件。它支持本地阅读并提供起点在线书库,具备多种格式的解析阅读功能
下载