官方说明:
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
JFinal有如下主要特点:
MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅248K,且无第三方依赖
开始进行JFinal集合DB示例
本机环境:Eclipse 4.4、Maven 3.0.5、Mysql 5.1、JDK 1.6、Tomcat 6.0
1、新建web项目:test
如图,Project name填写:test,Target runtime选择Apache Tomcat v6.0(此中间件为我本地Eclipse事先配置好的),web module version选择2.5,点击下一步:
3、默认,点击下一步:
如图,已创建成功web项目:
因需要结合Maven,将该web项目转换为Maven项目,右键项目,选择如下:
配置Maven pom.xml,如下:
配置JDK编译版本为1.6:
Java Compiler设置为1.6:
配置pom.xml,添加jfinal、mysql、c3p0、servlet相关依赖jar坐标,如下:
mysql mysql-connector-java 5.1.25 c3p0 c3p0 0.9.1.2 com.jfinal jfinal 2.1 javax.servlet javax.servlet-api 3.0.1
修改编译输出目录为“WebContent/WEB-INF/classes”,修改jdk版本为1.6和编译采用的编码格式为utf-8:
src WebContent/WEB-INF/classes org.apache.maven.plugins maven-war-plugin 2.1.1 WebContent org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.6 utf-8
web.xml只设置welcom-file-list为index.jsp:
index.jsp
2、创建包路径,包含action、conf、entity,如下:
创建Controller:TestController.java,继承Controller,添加方法index,如下:
package com.test.action;
import java.util.List;
import com.jfinal.core.Controller;
import com.test.entity.Test;
public class TestController extends Controller {
public void index() {
List list = Test.dao.find("select * from test");
this.renderJson(list);
}
}
创建数据库对应实体:Test.java,继承Model,如下:
package com.test.entity;
import com.jfinal.plugin.activerecord.Model;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class Test extends Model {
public static final Test dao = new Test();
}
创建JFinal配置类:CommonConfig.java,如下:
package com.test.conf;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.render.ViewType;
import com.test.action.TestController;
import com.test.entity.Test;
public class CommonConfig extends JFinalConfig {
@Override
public void configConstant(Constants constants) {
// 设定为开发者模式
constants.setDevMode(false);
constants.setViewType(ViewType.JSP);
}
@Override
public void configHandler(Handlers handlers) {
}
@Override
public void configInterceptor(Interceptors interceptors) {
}
@Override
public void configPlugin(Plugins plugins) {
C3p0Plugin cp = new C3p0Plugin("jdbc:mysql://localhost:3306/mydb", "root", "root");
plugins.add(cp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp);
plugins.add(arp);
arp.setDialect(new MysqlDialect());
arp.addMapping("test", "id", Test.class);
}
@Override
public void configRoute(Routes routes) {
routes.add("/", TestController.class);
}
}
web.xml添加JFinal过滤器并加载自定义JFinal配置类,如下:
test jfinal com.jfinal.core.JFinalFilter configClass com.test.conf.CommonConfig jfinal /* index.jsp
创建index.jsp,添加form表单请求TestController,如下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
test
浏览器访问:http://127.0.0.1/test,如下:
综上,JFinal结合mysql的示例到此已完成,此示例仅为JFinal简单示例,不能作为典型示例,仅仅作为入门的参考,还有待大家进行补充完善。