JFinal简单示例

官方说明:

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


JFinal简单示例_第1张图片
 

如图,Project name填写:test,Target runtime选择Apache Tomcat v6.0(此中间件为我本地Eclipse事先配置好的),web module version选择2.5,点击下一步:


JFinal简单示例_第2张图片
 

3、默认,点击下一步:


JFinal简单示例_第3张图片
 默认,点击Finish:


JFinal简单示例_第4张图片
 

如图,已创建成功web项目:


JFinal简单示例_第5张图片
 

因需要结合Maven,将该web项目转换为Maven项目,右键项目,选择如下:


JFinal简单示例_第6张图片
 

配置Maven pom.xml,如下:


JFinal简单示例_第7张图片
 

配置JDK编译版本为1.6:


JFinal简单示例_第8张图片
 

Java Compiler设置为1.6:


JFinal简单示例_第9张图片
 

配置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
                1.6
                utf-8
            
        
    
  

 

web.xml只设置welcom-file-list为index.jsp:


    index.jsp

 

2、创建包路径,包含action、conf、entity,如下:


JFinal简单示例_第10张图片
 

创建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简单示例,不能作为典型示例,仅仅作为入门的参考,还有待大家进行补充完善。

你可能感兴趣的:(JFinal)