官方说明:
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、默认,点击下一步:
默认,点击Finish:
如图,已创建成功web项目:
因需要结合Maven,将该web项目转换为Maven项目,右键项目,选择如下:
配置Maven pom.xml,如下:
配置JDK编译版本为1.6:
Java Compiler设置为1.6:
配置pom.xml,添加jfinal、mysql、c3p0、servlet相关依赖jar坐标,如下:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency> </dependencies>
修改编译输出目录为“WebContent/WEB-INF/classes”,修改jdk版本为1.6和编译采用的编码格式为utf-8:
<build> <sourceDirectory>src</sourceDirectory> <outputDirectory>WebContent/WEB-INF/classes</outputDirectory> <plugins> <!-- 打war包插件设置web目录为eclipse默认目录 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <!-- 设置WebContent目录为Web目录 --> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> <!-- 编译插件使用的jdk版本和编译采用的编码格式(默认为GBK) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>utf-8</encoding> </configuration> </plugin> </plugins> </build>
web.xml只设置welcom-file-list为index.jsp:
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
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<Test> 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<Test> { 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配置类,如下:
<?xml version="1.0" encoding="UTF-8"?> <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"> <display-name>test</display-name> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.test.conf.CommonConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
创建index.jsp,添加form表单请求TestController,如下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>test</title> </head> <body> <form id="form1" method="post" name="form1"> </form> </body> <script type="text/javascript"> function submit() { document.getElementById("form1").action = "test/index?t=" + new Date().getTime(); document.getElementById("form1").submit(); } submit(); </script> </html>
浏览器访问:http://127.0.0.1/test,如下:
综上,JFinal结合mysql的示例到此已完成,此示例仅为JFinal简单示例,不能作为典型示例,仅仅作为入门的参考,还有待大家进行补充完善。
相关推荐
JFinal的拦截器机制使得权限控制变得简单,通过拦截器可以轻松实现对不同路由的访问权限限制。 2. **权限管理**:权限管理是系统安全的重要部分,项目中可能包含了角色和权限的关系维护,以及基于角色的访问控制...
本示例中的"jfinal 简单增删改查(有分页功能)"着重展示了如何利用JFinal实现基本的数据操作,并结合分页功能来提升用户体验。 首先,我们需要了解JFinal的核心特性。它采用MVC(Model-View-Controller)架构模式,...
这个"jfinal示例工程与手册"的压缩包,显然是为了帮助开发者更好地理解和使用JFinal框架,特别是对于那些对JFinal还不太熟悉的初学者。 JFinal 的核心特点包括: 1. **轻量级**:JFinal小巧精悍,没有过多的依赖,...
总之,Spring Boot和JFinal的集成能够提供一个既拥有Spring Boot自动化配置和内置服务优势,又具备JFinal简单高效数据库操作特性的开发环境。这种集成方案适合那些希望快速搭建项目,同时又追求代码简洁性的开发者。
"jfinal_demo"项目中的实际代码展示了如何使用JFinal进行CRUD操作、分页查询、上传下载等功能,这些都是在实际开发中常见的场景,通过学习这个示例,你可以更好地理解JFinal在实际项目中的运用。 总之,JFinal是一...
JFinal是Java的一个MVC框架,其设计目标是打造极致简单、高效的开发工具。它的主要特点包括: 1. **轻量级**:JFinal体积小,无依赖,使得项目构建和维护更加容易。 2. **高性能**:JFinal采用了AOP(面向切面编程...
总结来说,"jfinal_demo_for_maven.zip_DEMO_JFinal crud_JFinal 项目_jfinal_jfin" 提供了一个使用 Maven 构建的 JFinal 示例项目,涵盖了数据库 CRUD 操作的核心功能。这个项目不仅展示了 JFinal 框架的高效性和...
JFinal 是一个基于 Java 语言的轻量级 Web 开发框架,它的设计目标是让开发更简单、更快速。在Java领域,它以其简洁、高效的特性受到开发者们的欢迎。本压缩包提供了 JFinal 的完整jar包,这意味着包含了所有运行和...
Jfinal是一款基于Java语言的轻量级Web开发框架,它以“简单、高效”为设计理念,为开发者提供了一种快速开发Web应用的解决方案。本文将围绕"JfinalDemo"这个项目,详细介绍其核心特点、应用场景以及如何进行项目搭建...
通过这个简单的JFinal例子,我们可以了解到如何利用JFinal进行数据库操作和文件下载功能的实现。JFinal的简洁设计使得开发者可以快速上手,同时其强大的插件系统也允许我们在实际项目中灵活扩展功能。无论是小型项目...
总结来说,"JFinal 实例(mysql数据库)"是一个展示如何利用 JFinal 框架和 MySQL 数据库开发 Web 应用的示例。通过这个实例,我们可以学习到如何设置数据库连接、创建 Model 类、执行 SQL 查询以及处理事务。这个...
“jfinal_demo_1”项目是一个基础的JFinal应用示例,它展示了如何配置JFinal、编写Controller以及简单的业务逻辑。通过学习和实践这个示例,初学者可以快速掌握JFinal的基本使用方法,为后续的JFinal项目开发打下...
JFinal 是一个基于Java语言的轻量级Web开发框架,它的设计目标是高效、简单、易用。在Java Web开发领域,JFinal以其轻巧、快速的特点受到许多开发者喜爱。这个压缩包文件“jfinal-3.3-all”显然包含了运行JFinal 3.3...
JFinal Demo(1.1.0) 是一个展示 JFinal 框架特性和应用的示例项目,为开发者提供了丰富的实践参考。 一、JFinal 框架基础 1. **MVC 设计模式**:JFinal 采用 MVC(Model-View-Controller)架构模式,将业务逻辑、...
"jfinal demo"是一个典型的JFinal项目示例,旨在帮助初学者快速理解并掌握JFinal框架的使用。本文将深入探讨这个Demo中的关键知识点,带你一步步走进JFinal的世界。 首先,JFinal的核心设计理念是“简单、高效”,...
"jfinal-2.2_demo" 是一个 JFinal 框架的示例项目,帮助开发者了解并学习如何在实际开发中应用 JFinal。在这个项目中,我们将深入探讨 JFinal 的核心特性和常见用法。 首先,JFinal 以其简单易用、性能高效而受到...
8. **数据库操作**:JFinal 提供了ActiveRecord模式,使得数据库操作变得简单,同时也支持原生SQL的执行。 9. **缓存支持**:JFinal 集成了Memcached和Redis等缓存系统,帮助提高应用程序性能。 10. **性能优化**...
2. **ORM支持**:Jfinal集成了ActiveRecord模式,通过简单的注解或配置,即可实现数据库操作,大大减少了数据库层的代码量。同时,支持多种数据库,如MySQL、Oracle、SQLite等。 3. **轻量级**:Jfinal的体积小,不...
JFinal的核心理念是"简单、高效",它基于MVC模式,提供了丰富的特性来简化Web开发。JFinal 3.5版本在前代基础上进行了优化和增强,包括路由管理、插件支持、模板引擎、数据库操作等,旨在提升开发者的开发体验。 二...