JFinal Web开发学习数据库连接与自动生成model

Posted wyhluckydog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JFinal Web开发学习数据库连接与自动生成model相关的知识,希望对你有一定的参考价值。

1.新建数据库jfinal_test,user表

/*
Navicat mysql Data Transfer

Source Server         : .
Source Server Version : 50547
Source Host           : localhost:3306
Source Database       : jfinal_test

Target Server Type    : MYSQL
Target Server Version : 50547
File Encoding         : 65001

Date: 2016-10-08 18:24:33
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `pwd` varchar(255) NOT NULL,
  `reg_time` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------

2.在res文件夹下的SystemConfig.txt文件中写入数据库连接地址,用户名密码,以及开发者模式。

jdbcUrl = jdbc:mysql://localhost:3306/jfinal_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
user = root
password = root
devMode = true

3.创建JFinal生成器 
在官网下载 
http://www.jfinal.com/download?file=GeneratorDemo.java 
然后修改其中的部分,如

package cn.pangpython.model;

import javax.sql.DataSource;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.generator.Generator;
import com.jfinal.plugin.c3p0.C3p0Plugin;

/**
 * GeneratorDemo
 * 来自JFinal官方的生成器
 * 
 */
public class _JFinalGenerator {

    public static DataSource getDataSource() {
        //加载配置文件
        Prop p = PropKit.use("SystemConfig.txt");
        //创建c3p0连接
        C3p0Plugin c3p0Plugin = new C3p0Plugin(p.get("jdbcUrl"), p.get("user"), p.get("password"));
        c3p0Plugin.start();
        return c3p0Plugin.getDataSource();
    }

    public static void main(String[] args) {
        // base model 所使用的包名
        String baseModelPackageName = "cn.pangpython.model.base";
        // base model 文件保存路径
        String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/cn/pangpython/model/base";

        // model 所使用的包名 (MappingKit 默认使用的包名)
        String modelPackageName = "cn.pangpython.model";
        // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)
        String modelOutputDir = baseModelOutputDir + "/..";

        // 创建生成器
        Generator gernerator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);
        // 设置数据库方言
        //gernerator.setDialect(new MysqlDialect());
        // 添加不需要生成的表名
        //gernerator.addExcludedTable("adv");
        // 设置是否在 Model 中生成 dao 对象
        gernerator.setGenerateDaoInModel(true);
        // 设置是否生成字典文件
        gernerator.setGenerateDataDictionary(false);
        // 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser
        //gernerator.setRemovedTableNamePrefixes("t_");
        // 生成
        gernerator.generate();
    }
}

4.把依赖的jar包放入WebRoot/WEB-INF/lib/下 
目前的jar包 

5.生成 
在_JFinalGenerator.java中右击--->Run As--->Java Application运行 
就能生成数据库的实体类 

其中base包中的类文件不需要我们手动修改,如果数据库有变动,只需要用生成器重新生成一次就OK。 
model中可以定义自己的方法,比如getAllUser返回list类型. 
用Jfinal老大的话说,干净清爽,打完收枪。

: )

参考原文:https://blog.csdn.net/u012995856/article/details/52759927

以上是关于JFinal Web开发学习数据库连接与自动生成model的主要内容,如果未能解决你的问题,请参考以下文章

JFinal Web开发学习开启HelloWorld

JFinal Web开发学习验证码验证和注册细节

JFinal Web开发学习后台添加前台显示博客

jfinal框架教程-学习笔记

JFinal Web开发学习使用layUI美化的登录功能

JFinal Web开发学习注册界面和后端验证