码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-01-19 22:14:34      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:文件夹   oid   string   database   enc   mys   sem   stat   image   

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

标签:文件夹   oid   string   database   enc   mys   sem   stat   image   

原文地址:https://www.cnblogs.com/wyhluckdog/p/10293419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!