`
jushi1988
  • 浏览: 73620 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

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



 

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

  • 大小: 48.9 KB
  • 大小: 73.7 KB
  • 大小: 55.1 KB
  • 大小: 45.3 KB
  • 大小: 6.2 KB
  • 大小: 41.6 KB
  • 大小: 38.5 KB
  • 大小: 10 KB
  • 大小: 42 KB
  • 大小: 2.5 KB
  • 大小: 9 KB
分享到:
评论

相关推荐

    JFinal 新闻项目示例

    JFinal的拦截器机制使得权限控制变得简单,通过拦截器可以轻松实现对不同路由的访问权限限制。 2. **权限管理**:权限管理是系统安全的重要部分,项目中可能包含了角色和权限的关系维护,以及基于角色的访问控制...

    jfinal 简单增删改查(有分页功能)

    本示例中的"jfinal 简单增删改查(有分页功能)"着重展示了如何利用JFinal实现基本的数据操作,并结合分页功能来提升用户体验。 首先,我们需要了解JFinal的核心特性。它采用MVC(Model-View-Controller)架构模式,...

    jfinal示例工程与手册

    这个"jfinal示例工程与手册"的压缩包,显然是为了帮助开发者更好地理解和使用JFinal框架,特别是对于那些对JFinal还不太熟悉的初学者。 JFinal 的核心特点包括: 1. **轻量级**:JFinal小巧精悍,没有过多的依赖,...

    springboot和JFinal的集成

    总之,Spring Boot和JFinal的集成能够提供一个既拥有Spring Boot自动化配置和内置服务优势,又具备JFinal简单高效数据库操作特性的开发环境。这种集成方案适合那些希望快速搭建项目,同时又追求代码简洁性的开发者。

    jfinal 完整Demo

    "jfinal_demo"项目中的实际代码展示了如何使用JFinal进行CRUD操作、分页查询、上传下载等功能,这些都是在实际开发中常见的场景,通过学习这个示例,你可以更好地理解JFinal在实际项目中的运用。 总之,JFinal是一...

    jfinal实战项目-内部管理项目

    JFinal是Java的一个MVC框架,其设计目标是打造极致简单、高效的开发工具。它的主要特点包括: 1. **轻量级**:JFinal体积小,无依赖,使得项目构建和维护更加容易。 2. **高性能**:JFinal采用了AOP(面向切面编程...

    jfinal_demo_for_maven.zip_DEMO_JFinal crud_JFinal 项目_jfinal_jfin

    总结来说,"jfinal_demo_for_maven.zip_DEMO_JFinal crud_JFinal 项目_jfinal_jfin" 提供了一个使用 Maven 构建的 JFinal 示例项目,涵盖了数据库 CRUD 操作的核心功能。这个项目不仅展示了 JFinal 框架的高效性和...

    jfinal框架及文档说明

    JFinal 是一个基于 Java 语言的轻量级 Web 开发框架,它的设计目标是让开发更简单、更快速。在Java领域,它以其简洁、高效的特性受到开发者们的欢迎。本压缩包提供了 JFinal 的完整jar包,这意味着包含了所有运行和...

    JfinalDemo

    Jfinal是一款基于Java语言的轻量级Web开发框架,它以“简单、高效”为设计理念,为开发者提供了一种快速开发Web应用的解决方案。本文将围绕"JfinalDemo"这个项目,详细介绍其核心特点、应用场景以及如何进行项目搭建...

    JFinal例子

    通过这个简单的JFinal例子,我们可以了解到如何利用JFinal进行数据库操作和文件下载功能的实现。JFinal的简洁设计使得开发者可以快速上手,同时其强大的插件系统也允许我们在实际项目中灵活扩展功能。无论是小型项目...

    JFinal实例(mysql数据库)

    总结来说,"JFinal 实例(mysql数据库)"是一个展示如何利用 JFinal 框架和 MySQL 数据库开发 Web 应用的示例。通过这个实例,我们可以学习到如何设置数据库连接、创建 Model 类、执行 SQL 查询以及处理事务。这个...

    jfinal_demo_1.rar

    “jfinal_demo_1”项目是一个基础的JFinal应用示例,它展示了如何配置JFinal、编写Controller以及简单的业务逻辑。通过学习和实践这个示例,初学者可以快速掌握JFinal的基本使用方法,为后续的JFinal项目开发打下...

    jfinal_demo(1.1.0).zip

    JFinal Demo(1.1.0) 是一个展示 JFinal 框架特性和应用的示例项目,为开发者提供了丰富的实践参考。 一、JFinal 框架基础 1. **MVC 设计模式**:JFinal 采用 MVC(Model-View-Controller)架构模式,将业务逻辑、...

    jFinal demo

    "jfinal demo"是一个典型的JFinal项目示例,旨在帮助初学者快速理解并掌握JFinal框架的使用。本文将深入探讨这个Demo中的关键知识点,带你一步步走进JFinal的世界。 首先,JFinal的核心设计理念是“简单、高效”,...

    jfinal运行所需jar包

    JFinal 是一个基于Java语言的轻量级Web开发框架,它的设计目标是高效、简单、易用。在Java Web开发领域,JFinal以其轻巧、快速的特点受到许多开发者喜爱。这个压缩包文件“jfinal-3.3-all”显然包含了运行JFinal 3.3...

    jfinal-2.2_demo

    "jfinal-2.2_demo" 是一个 JFinal 框架的示例项目,帮助开发者了解并学习如何在实际开发中应用 JFinal。在这个项目中,我们将深入探讨 JFinal 的核心特性和常见用法。 首先,JFinal 以其简单易用、性能高效而受到...

    Jfinal框架

    8. **数据库操作**:JFinal 提供了ActiveRecord模式,使得数据库操作变得简单,同时也支持原生SQL的执行。 9. **缓存支持**:JFinal 集成了Memcached和Redis等缓存系统,帮助提高应用程序性能。 10. **性能优化**...

    Jfinal-2.1-all && Jfinal demo

    2. **ORM支持**:Jfinal集成了ActiveRecord模式,通过简单的注解或配置,即可实现数据库操作,大大减少了数据库层的代码量。同时,支持多种数据库,如MySQL、Oracle、SQLite等。 3. **轻量级**:Jfinal的体积小,不...

    jfinal 3.5离线手册

    JFinal的核心理念是"简单、高效",它基于MVC模式,提供了丰富的特性来简化Web开发。JFinal 3.5版本在前代基础上进行了优化和增强,包括路由管理、插件支持、模板引擎、数据库操作等,旨在提升开发者的开发体验。 二...

Global site tag (gtag.js) - Google Analytics