Jfinal Generator 不需要生成带某个前缀的表名数组的方法

本文介绍了一种使用JFinal框架中的代码生成器自动生成数据库模型类的方法。通过配置数据库连接并指定生成规则,如排除表名、设定是否生成DAO对象等,可以快速生成符合项目需求的基础模型类。
  1. package com.demo.common.model;  
  2.   
  3. import javax.sql.DataSource;  
  4. import com.jfinal.kit.PathKit;  
  5. import com.jfinal.kit.Prop;  
  6. import com.jfinal.kit.PropKit;  
  7. import com.jfinal.plugin.activerecord.generator.Generator;  
  8. import com.jfinal.plugin.c3p0.C3p0Plugin;  
  9. import java.sql.Connection;  
  10. import java.sql.ResultSet;  
  11. import java.sql.SQLException;  
  12. import java.sql.Statement;  
  13. import java.util.ArrayList;  
  14. import java.util.List;  
  15. /** 
  16.  * GeneratorDemo 
  17.  */  
  18. public class GeneratorDemo {  
  19.       
  20.     public static DataSource getDataSource() {  
  21.         Prop p = PropKit.use("a_little_config.txt");  
  22.         C3p0Plugin c3p0Plugin = new C3p0Plugin(p.get("jdbcUrl"), p.get("user"), p.get("password"));  
  23.         c3p0Plugin.start();  
  24.         return c3p0Plugin.getDataSource();  
  25.     }  
  26.       
  27.     public static void main(String[] args) {  
  28.         // base model 所使用的包名  
  29.         String baseModelPackageName = "com.demo.common.model.base";  
  30.         // base model 文件保存路径  
  31.         String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/com/demo/common/model/base";  
  32.           
  33.         // model 所使用的包名 (MappingKit 默认使用的包名)  
  34.         String modelPackageName = "com.demo.common.model";  
  35.         // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)  
  36.         String modelOutputDir = baseModelOutputDir + "/..";  
  37.           
  38.         // 创建生成器  
  39.         Generator gernerator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);  
  40.         // 设置数据库方言  
  41.         gernerator.setDialect(new MysqlDialect());  
  42.         // 添加不需要生成的表名  
  43.         gernerator.addExcludedTable(getExcTab("compact_"));  
  44.         // 设置是否在 Model 中生成 dao 对象  
  45.         gernerator.setGenerateDaoInModel(true);  
  46.         // 设置是否生成字典文件  
  47.         gernerator.setGenerateDataDictionary(false);  
  48.         // 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser  
  49.         gernerator.setRemovedTableNamePrefixes("t_");  
  50.         // 生成  
  51.         gernerator.generate();  
  52.     }  
  53.       

 

  1.     private static String[] getExcTab(String preName){  
  2.         String sql="SELECT table_name from information_schema.tables WHERE table_name LIKE '"+preName+"%'";  
  3.         List<String> list = new ArrayList<String>();  
  4.         Connection conn = null;  
  5.         try {  
  6.             conn = getDataSource().getConnection();  
  7.             Statement stmt = conn.createStatement();  
  8.             ResultSet rs=stmt.executeQuery(sql);  
  9.             while (rs.next()) {  
  10.                 list.add(rs.getString(1));  
  11.             }  
  12.         } catch (SQLException e) {  
  13.             // TODO Auto-generated catch block  
  14.             e.printStackTrace();  
  15.         }finally{  
  16.             try {  
  17.                 conn.close();  
  18.             } catch (SQLException e) {  
  19.                 // TODO Auto-generated catch block  
  20.                 e.printStackTrace();  
  21.             }  
  22.         }  
  23.           
  24.         String[] s=new String[list.size()];  
  25.         for (int i = 0; i < list.size(); i++) {  
  26.             s[i]= list.get(i);  
  27.         }  
  28.         return s;  
  29.     }  
  30. }  

转载于:https://my.oschina.net/bv10000/blog/865264

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值