Search in sources :

Example 1 with Module

use of com.free.framework.code.tools.model.Module in project free-framework by a601942905git.

the class DataBase2File method generateFiles.

/**
 * 主方法,反转生成相关文件
 *
 * @throws IOException
 * @throws ClassNotFoundException
 * @throws SQLException
 */
public void generateFiles() throws IOException, ClassNotFoundException, SQLException {
    System.out.println("Generating...");
    Long start = System.currentTimeMillis();
    // 根据数据库类型获取数据库实例
    tableService = TableServiceFactory.getInstance(config.getDb().getDbType());
    // 设置数据库实例的配置信息
    tableService.setConfig(config);
    // 加载数据库驱动
    Class.forName(config.getDb().getDriver());
    // 连接数据库
    Connection con = DriverManager.getConnection(config.getDb().getUrl(), config.getDb().getUser(), config.getDb().getPwd());
    // 加载模块信息
    for (Module module : config.getModules()) {
        System.out.println("module=" + module.getName());
        // 如果没有配置数据表,则默认加载模块名为前缀的所有数据表
        if (module.getTables() == null || module.getTables().isEmpty()) {
            // 获取对应数据库中所有的表
            module.setTables(tableService.getAllTables(module.getName() + "%"));
        }
        // 系统的model文件
        StringBuffer sbModel = new StringBuffer();
        if (module.getTables() != null) {
            for (TableConf tbConf : module.getTables()) {
                tbConf.setPrefix(module.getPrefix());
                // 获取一个表的相关信息同时设置模块名称
                Table table = tableService.getTable(tbConf, module, con);
                genFile(table, module);
            }
        }
        // System.out.println(sbModel.toString());
        if ("dorado".equals(module.getFramework())) {
            // 生成model文件
            writeModelFile(module.getName().split("/")[0] + ".model.xml", sbModel.toString());
        }
    }
    con.close();
    ZipUtil.zip(config.getBaseDir(), config.getBaseDir() + ".zip");
    Long end = System.currentTimeMillis();
    System.out.println("Generate Success! total time = " + (end - start));
    System.out.println("Please check: " + config.getBaseDir());
}
Also used : TableConf(com.free.framework.code.tools.model.TableConf) Table(com.free.framework.code.tools.model.Table) Connection(java.sql.Connection) Module(com.free.framework.code.tools.model.Module)

Example 2 with Module

use of com.free.framework.code.tools.model.Module in project free-framework by a601942905git.

the class Config method loadConfig.

public static Config loadConfig(GenerateCodeParam generateCodeParam) {
    Config cfg = new Config();
    /**
     *****************************************基础包设置开始*****************************************************
     */
    // 生成代码存放的目录路径
    cfg.setBaseDir(generateCodeParam.getBaseDir());
    // 项目的基础包 如com.dremoon.framework
    cfg.setBasePackage(generateCodeParam.getBasePackage());
    // 项目的业务包,如果没有,则直接在项目的基础包后面添加模块包名称
    cfg.setBaseCorePackage(generateCodeParam.getBaseCorePackage());
    // 项目的web包,如果没有,则直接在项目的基础包后面添加模块包名称
    cfg.setBaseWebPackage(generateCodeParam.getBaseWebPackage());
    /**
     *****************************************基础包设置结束*****************************************************
     */
    /**
     *****************************************实例化DB信息开始*****************************************************
     */
    Db db = new Db();
    // 设置数据库类型
    db.setDbType(generateCodeParam.getDbType());
    // 设置数据库驱动
    db.setDriver(generateCodeParam.getDbDriver());
    // 设置数据库的url
    db.setUrl(generateCodeParam.getDbUrl());
    // 设置数据库的账号
    db.setUser(generateCodeParam.getDbUser());
    // 设置数据库密码
    db.setPwd(generateCodeParam.getDbPwd());
    // 设置数据库名称
    db.setDbName(generateCodeParam.getDbName());
    // 设置数据库基本信息
    cfg.setDb(db);
    /**
     *****************************************实例化DB信息开始*****************************************************
     */
    /**
     *****************************************设置项目包名开始*****************************************************
     */
    // 加载包名设置
    PackageSetting pkgSetting = new PackageSetting();
    // action配置
    pkgSetting.setActionPackage(generateCodeParam.getActionPackage());
    // 实体模型
    pkgSetting.setEntityPackage(generateCodeParam.getEntityPackage());
    // mapper
    pkgSetting.setMapperPackage(generateCodeParam.getMapperPackage());
    // dao
    pkgSetting.setDaoPackage(generateCodeParam.getDaoPackage());
    // 业务层
    pkgSetting.setServicePackage(generateCodeParam.getServicePackage());
    // 业务层实现
    pkgSetting.setServiceImplPackage(generateCodeParam.getServiceImplPackage());
    // 列表页面
    pkgSetting.setListPage(generateCodeParam.getListPage());
    // 新增页面
    pkgSetting.setAddPage(generateCodeParam.getAddPage());
    // 修改页面
    pkgSetting.setModifyPage(generateCodeParam.getModifyPage());
    // 是否去掉数据库中表名前缀
    pkgSetting.setIsDeleteTablePrefix(generateCodeParam.getIsDeleteTablePrefix());
    // 设置包信息
    cfg.setPackageSetting(pkgSetting);
    // 设置需要过滤的表
    cfg.setExcludeTables(generateCodeParam.getExcludeTables());
    // 设置需要过滤的列
    cfg.setExcludeColumns(generateCodeParam.getExcludeColumns());
    /**
     *****************************************设置项目包名结束*****************************************************
     */
    // 加载module
    List<Module> moduleList = new ArrayList<>();
    Module module = new Module();
    module.setName("");
    module.setPersistance(generateCodeParam.getPersistanceFramework());
    module.setDeleteTablePrefix(generateCodeParam.getIsDeleteTablePrefix());
    module.setPrefix(generateCodeParam.getPrefix());
    module.setFramework(generateCodeParam.getFramework());
    module.setDaoPackage(generateCodeParam.getDaoPackage());
    module.setServicePackage(generateCodeParam.getServicePackage());
    module.setServiceImplPackage(generateCodeParam.getServiceImplPackage());
    module.setEntityPackage(generateCodeParam.getEntityPackage());
    module.setActionPackage(generateCodeParam.getActionPackage());
    module.setListPage(generateCodeParam.getListPage());
    module.setAddPage(generateCodeParam.getAddPage());
    module.setModifyPage(generateCodeParam.getModifyPage());
    module.setDetailPage(generateCodeParam.getDetailPage());
    module.setMapperPackage(generateCodeParam.getMapperPackage());
    module.setSavePath(generateCodeParam.getMapperSavePath());
    module.setFrameworkMapping(generateCodeParam.getFrameworkMapping());
    moduleList.add(module);
    cfg.setModules(moduleList);
    return cfg;
}
Also used : PackageSetting(com.free.framework.code.tools.model.PackageSetting) ArrayList(java.util.ArrayList) Module(com.free.framework.code.tools.model.Module) Db(com.free.framework.code.tools.model.Db)

Aggregations

Module (com.free.framework.code.tools.model.Module)2 Db (com.free.framework.code.tools.model.Db)1 PackageSetting (com.free.framework.code.tools.model.PackageSetting)1 Table (com.free.framework.code.tools.model.Table)1 TableConf (com.free.framework.code.tools.model.TableConf)1 Connection (java.sql.Connection)1 ArrayList (java.util.ArrayList)1