1. 程式人生 > >JFinal Web開發學習(四)數據庫連接與自動生成model

JFinal Web開發學習(四)數據庫連接與自動生成model

加載 方言 onu otp tor path etime javax 連接

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