zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    函数式编程的基础
    monad
    Overview of Polymorphism -多态的分类
    浅谈Overload和Override的区别
    Polymorphism (computer science)
    Type inference
    Ad hoc polymorphism
    trait 和abstract的区别在哪里
    Type class-Typeclass-泛型基础上的二次抽象---随意多态
    泛型中的类型约束和类型推断
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10293419.html
Copyright © 2011-2022 走看看