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:



 

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


JFinal简单示例_第4张图片
 

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


JFinal简单示例_第5张图片
 

配置Maven pom.xml,如下:



 

配置JDK编译版本为1.6:


JFinal简单示例_第6张图片
 

Java Compiler设置为1.6:


JFinal简单示例_第7张图片
 

配置pom.xml,添加jfinal、mysql、c3p0、servlet相关依赖jar坐标,如下:

Xml代码  收藏代码

  1. <dependencies>  

  2.           <dependency>  

  3.             <groupId>mysql</groupId>  

  4.             <artifactId>mysql-connector-java</artifactId>  

  5.             <version>5.1.25</version>  

  6.         </dependency>  

  7.         <dependency>  

  8.             <groupId>c3p0</groupId>  

  9.             <artifactId>c3p0</artifactId>  

  10.             <version>0.9.1.2</version>  

  11.         </dependency>  

  12.         <dependency>  

  13.             <groupId>com.jfinal</groupId>  

  14.             <artifactId>jfinal</artifactId>  

  15.             <version>2.1</version>  

  16.         </dependency>  

  17.         <dependency>  

  18.           <groupId>javax.servlet</groupId>  

  19.           <artifactId>javax.servlet-api</artifactId>  

  20.           <version>3.0.1</version>  

  21.         </dependency>  

  22.   </dependencies>  

 

修改编译输出目录为“WebContent/WEB-INF/classes”,修改jdk版本为1.6和编译采用的编码格式为utf-8:

Xml代码  收藏代码

  1. <build>  

  2.     <sourceDirectory>src</sourceDirectory>  

  3.     <outputDirectory>WebContent/WEB-INF/classes</outputDirectory>  

  4.     <plugins>  

  5.         <!-- 打war包插件设置web目录为eclipse默认目录 -->  

  6.         <plugin>  

  7.             <groupId>org.apache.maven.plugins</groupId>  

  8.             <artifactId>maven-war-plugin</artifactId>  

  9.             <version>2.1.1</version>  

  10.             <configuration>  

  11.                 <!-- 设置WebContent目录为Web目录 -->  

  12.                 <warSourceDirectory>WebContent</warSourceDirectory>  

  13.             </configuration>  

  14.         </plugin>  

  15.         <!-- 编译插件使用的jdk版本和编译采用的编码格式(默认为GBK) -->  

  16.         <plugin>  

  17.             <groupId>org.apache.maven.plugins</groupId>  

  18.             <artifactId>maven-compiler-plugin</artifactId>  

  19.             <version>2.0.2</version>  

  20.             <configuration>  

  21.                 <source>1.6</source>  

  22.                 <target>1.6</target>  

  23.                 <encoding>utf-8</encoding>  

  24.             </configuration>  

  25.         </plugin>  

  26.     </plugins>  

  27.   </build>  

 

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

Xml代码  收藏代码

  1. <welcome-file-list>  

  2.     <welcome-file>index.jsp</welcome-file>  

  3. </welcome-file-list>  

 

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


JFinal简单示例_第8张图片
 

创建Controller:TestController.java,继承Controller,添加方法index,如下:

Java代码  收藏代码

  1. package com.test.action;  

  2.    

  3. import java.util.List;  

  4.    

  5. import com.jfinal.core.Controller;  

  6. import com.test.entity.Test;  

  7.    

  8. public class TestController extends Controller {  

  9.    

  10.     public void index() {  

  11.         List<Test> list = Test.dao.find("select * from test");  

  12.         this.renderJson(list);  

  13.     }  

  14.    

  15. }  

 

创建数据库对应实体:Test.java,继承Model,如下:

Java代码  收藏代码

  1. package com.test.entity;  

  2.    

  3. import com.jfinal.plugin.activerecord.Model;  

  4.    

  5. /** 

  6.  * Generated by JFinal. 

  7.  */  

  8. @SuppressWarnings("serial")  

  9. public class Test extends Model<Test> {  

  10.     public static final Test dao = new Test();  

  11. }  

 

创建JFinal配置类:CommonConfig.java,如下:

Java代码  收藏代码

  1. package com.test.conf;  

  2.    

  3. import com.jfinal.config.Constants;  

  4. import com.jfinal.config.Handlers;  

  5. import com.jfinal.config.Interceptors;  

  6. import com.jfinal.config.JFinalConfig;  

  7. import com.jfinal.config.Plugins;  

  8. import com.jfinal.config.Routes;  

  9. import com.jfinal.plugin.activerecord.ActiveRecordPlugin;  

  10. import com.jfinal.plugin.activerecord.dialect.MysqlDialect;  

  11. import com.jfinal.plugin.c3p0.C3p0Plugin;  

  12. import com.jfinal.render.ViewType;  

  13. import com.test.action.TestController;  

  14. import com.test.entity.Test;  

  15.    

  16. public class CommonConfig extends JFinalConfig {  

  17.    

  18.     @Override  

  19.     public void configConstant(Constants constants) {  

  20.         // 设定为开发者模式  

  21.         constants.setDevMode(false);  

  22.         constants.setViewType(ViewType.JSP);  

  23.     }  

  24.    

  25.     @Override  

  26.     public void configHandler(Handlers handlers) {  

  27.     }  

  28.    

  29.     @Override  

  30.     public void configInterceptor(Interceptors interceptors) {  

  31.     }  

  32.    

  33.     @Override  

  34.     public void configPlugin(Plugins plugins) {  

  35.         C3p0Plugin cp = new C3p0Plugin("jdbc:mysql://localhost:3306/mydb""root""root");  

  36.         plugins.add(cp);  

  37.         ActiveRecordPlugin arp = new ActiveRecordPlugin(cp);  

  38.         plugins.add(arp);  

  39.         arp.setDialect(new MysqlDialect());  

  40.         arp.addMapping("test""id", Test.class);  

  41.     }  

  42.    

  43.     @Override  

  44.     public void configRoute(Routes routes) {  

  45.         routes.add("/", TestController.class);  

  46.     }  

  47.    

  48. }  

 

web.xml添加JFinal过滤器并加载自定义JFinal配置类,如下:

Xml代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  

  3.   <display-name>test</display-name>  

  4.   <filter>  

  5.     <filter-name>jfinal</filter-name>  

  6.     <filter-class>com.jfinal.core.JFinalFilter</filter-class>  

  7.     <init-param>  

  8.         <param-name>configClass</param-name>  

  9.         <param-value>com.test.conf.CommonConfig</param-value>  

  10.     </init-param>  

  11.   </filter>  

  12.   <filter-mapping>  

  13.     <filter-name>jfinal</filter-name>  

  14.     <url-pattern>/*</url-pattern>  

  15.   </filter-mapping>  

  16.   <welcome-file-list>  

  17.     <welcome-file>index.jsp</welcome-file>  

  18.   </welcome-file-list>  

  19. </web-app>  

 

创建index.jsp,添加form表单请求TestController,如下:

Html代码  收藏代码

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>  

  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

  3. <html>  

  4. <head>  

  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  

  6. <title>test</title>  

  7. </head>  

  8. <body>  

  9. <form id="form1" method="post" name="form1">  

  10.    

  11. </form>  

  12. </body>  

  13. <script type="text/javascript">  

  14.     function submit() {  

  15.         document.getElementById("form1").action = "test/index?t=" + new Date().getTime();  

  16.         document.getElementById("form1").submit();  

  17.     }  

  18.     submit();  

  19. </script>  

  20. </html>  

 

浏览器访问:http://127.0.0.1/test,如下:



 

综上,JFinal结合mysql的示例到此已完成,此示例仅为JFinal简单示例,不能作为典型示例,仅仅作为入门的参考,还有待大家进行补充完善。


你可能感兴趣的:(JFinal简单示例)