自动生成代码工具 配置文件工具类

                                                     自动生成代码工具 配置文件工具类

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ijwt.element.Constants;
import com.ijwt.element.DataSource;
import com.ijwt.element.Global;
import com.ijwt.element.Table;
import com.ijwt.element.XMLElement;
import com.ijwt.exception.XMLParserException;

/**
 * @author InJavaWeTrust
 */
public enum UtilXML {
	
	INSTANCE;
	
	private static Logger log = LoggerFactory.getLogger(UtilXML.class);
	private Global global         = null;
	private DataSource dataSource = null;
	private List<Table> tableList = null;
	
	private XMLElement<List<Element>, Global> globalElement = elementList -> {
		Global globalParam = new Global();
		if (!elementList.isEmpty()) {
			elementList.forEach(element -> {
				if("osdir".equals(element.getName())) {
					globalParam.setOsdir(element.attributeValue("value"));
				} else if ("javapackage".equals(element.getName())) {
					globalParam.setJavapackage(element.attributeValue("value"));
				} else if ("author".equals(element.getName())) {
					globalParam.setAuthor(element.attributeValue("value"));
				} else if ("project".equals(element.getName())) {
					globalParam.setProject(element.attributeValue("value"));
				}
			});
		}
		return globalParam;
	};
	
	private XMLElement<List<Element>, DataSource> dataSourceElement = elementList -> {
		DataSource dataSourceParam = new DataSource();
		if (!elementList.isEmpty()) {
			elementList.forEach(element -> {
				if("driver".equals(element.getName())) {
					dataSourceParam.setDriver(element.attributeValue("value"));
				} else if ("url".equals(element.getName())) {
					dataSourceParam.setUrl(element.attributeValue("value"));
				} else if ("username".equals(element.getName())) {
					dataSourceParam.setUsername(element.attributeValue("value"));
				} else if ("password".equals(element.getName())) {
					dataSourceParam.setPassword(element.attributeValue("value"));
				}
			});
		}
		return dataSourceParam;
	};
	
	private XMLElement<List<Element>, List<Table>> tableElement = elementList -> {
		List<Table> tableListParam = new ArrayList<>();
		if (!elementList.isEmpty()) {
			elementList.forEach(element -> {
				if ("table".equals(element.getName())) {
					Table table = new Table();
					table.setTableName(element.attributeValue("value"));
					tableListParam.add(table);
				}
			});
		}
		return tableListParam;
	};

	
	static {
		try (InputStream in = UtilXML.class.getClassLoader()
				.getResourceAsStream("config.xml")) {
			UtilXML.INSTANCE.parseConfigXml(in);
		} catch (XMLParserException | IOException e) {
			log.error("##解析配置文件出现问题!!![" + e.getMessage() + "]");
		}
	}
	
	@SuppressWarnings("unchecked")
	private void parseConfigXml(InputStream in) throws XMLParserException {
		try {
			SAXReader reader = new SAXReader();
			Document document = reader.read(in);
			Element root = document.getRootElement();
			List<Element> elements = root.elements();
			elements.forEach(element -> {
				switch (element.getName()) {
				case Constants.GLOBAL : 
					global = globalElement.getElement(element.elements());
					break;
				case Constants.DATASOURCE : 
					dataSource = dataSourceElement.getElement(element.elements());
					break;
				case Constants.TABLELIST : 
					tableList = tableElement.getElement(element.elements());
					break;
				default : log.warn("## 未知元素 [{}]", element.getName());
				}
			});
		} catch (DocumentException e) {
			throw new XMLParserException("解析 config.xml 时发生异常 [" + e.getMessage() + "]");
		}
	}
	
	public Global getGlobal() {
		return global;
	}
	
	public DataSource getDataSource() {
		return dataSource;
	}

	public List<Table> getTableList() {
		return tableList;
	}
	
	public static void main(String[] args) {
		List<Table> tabLst = UtilXML.INSTANCE.getTableList();
		tabLst.forEach(table -> System.out.println(table.getTableName()));
		Global global = new Global();
		global = UtilXML.INSTANCE.getGlobal();
		System.out.println(global.getAuthor());
		System.out.println(global.getJavapackage());
		System.out.println(global.getOsdir());
		System.out.println(global.getProject());
		DataSource dataSource = new DataSource();
		dataSource = UtilXML.INSTANCE.getDataSource();
		System.out.println(dataSource.getDriver());
		System.out.println(dataSource.getPassword());
		System.out.println(dataSource.getUrl());
		System.out.println(dataSource.getUsername());
		
	}

}

 

根据表自动生成代码java, generatorConfig.xml配置文件 立即下载

相关推荐

JavaBean实体类 配置文件 代码一键自动生成工具

各位客官看清楚了,这个是工具,免费先给各位使用下,绝对原创,源码请转到这里下载: http://download.youkuaiyun.com/detail/happingchann/8079477 ******原创非转载****** ******支持解析Powerdesiger物理逻辑图****** ******非JAVA源码****** 代码一键自动生成工具 可生成Action、JavaBean实体类、Dao及实现类、service及实现类、spring.xml、struts.xml、mybatis.xml *该工具目前支持3种数据源的生成方式,分别是:JDBC、.table、PDM *JDBC:选择JDBC是只需要配置数据源就行了,别的不要动 *.table后缀文件:是金蝶BOS中的一个字段属性映射文件 *PDM:Powerdesigner物理逻辑图,选择PDM时会读取物理逻辑图中的所有表,从里面选择需要生成的目标表就行了 *config文件夹中提供测试的.table文件和PDM文件

java自动代码生成

可在线自动生成代码,省去复制、修改通用模板代码的繁琐过程,减少团队70%以上的开发工作量基于java的template模板引擎velocity,在定义好模板文件后,动态产生适应业务的java、xml、html、sql等代码文件。

Yang_RR的博客 5599

java代码自动生成器(仅修改配置即ok)

HI,all 现发布rapid-generator的预览版本。只供群内部同学预览使用。 该版本是独立版(即不需要导入eclipse,提供命令行运行) 下载地址: http://rapid-generator.googlecode.com/files/standalone-rapid-generator-3.9.0.20100619.zip 相关特性: 一. 生成器模板路径可以引用相关变量 如 ${basepackage}/${className}.java,根据该变量生成输出文件 二. 自动搜索某个目录所有模板文件,无需配置 三.代码生成器模板可以引用的相关变量 1. g.generateByTable("table_name") 方法可以引用的变量 table : cn.org.rapid_framework.generator.provider.db.model.Table 2. g.generateByClass("class") 方法可以引用的变量 clazz : cn.org.rapid_framework.generator.provider.java.model.JavaClass 3.公共变量 env : 系统环境变量 System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl

自动生成代码工具配置文件及技术点详解

之前发过一篇文章关于自动生成代码的项目。有小伙伴私信说要讲一下具体的思路与配置信息,现在满足一下大家的好奇!

ybb_ymm的专栏 580

代码自动生成和配置文件自动更改的工具

博文链接:https://kyo-cc.iteye.com/blog/187395

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 379

提高游戏开发效率的小工具之配置表生成工具

游戏开发中,经常会遇见各式各样的配置表,不同的字段,加上不同的类型,组成的策划们所需要的配置表,但为了达到版本内容,往往配置表格式变化反复无穷。因为在经过数个游戏项目的摧残之后,我们总结了一套比较实用的配置表生成工具。基本原理是约定一套excel格式,然后制定多种生成函数的格式,然后根据需要生成指定语言格式的文件模块。 以下是这套工具的详细约定: 1.目录列表: 2:Configs目录。这里存放的是设置文档Setting.cfg。 { "app_s...

qq_15855921的博客 7582

【AI之路】cmd命令行通过Huggingface镜像站快速下载模型文件的方法

Hugging Face Hub 是分享机器学习模型、演示、数据集和指标的首选之地。huggingface_hub 库可以轻松下载Huggingface上有用的模型和数据集元数据。但大模型文件通常较大,国内下载太慢,那有没有高效便捷的方法?这个当然必须有!看到了吗?只是添加一个参数,下载大模型就搞定了。当然也可以使用python程序来下载。具体见前期博文:【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)

IT里的交易员-博客 1860

Mybatis-plus 的代码生成器 Demo

import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.my...

零零JA 1710

玩转ubuntu18 --机器视觉方面(yolo算法识别及摄像头和cmake问题解决)

玩转ubuntu18 --机器视觉方面(yolo v3算法识别) 1.YOLO的简介 工作原理 先前的检测系统重新调整分类器或本地化器以执行检测。他们将模型应用于多个位置和比例尺的图像。图像的高分区域被视为检测。 我们使用完全不同的方法。我们将单个神经网络应用于整个图像。该网络将图像划分为区域,并预测每个区域的边界框和概率。这些边界框按预测概率加权。 我们的模型比基于分类器的系统具有几个优势。它在测试时间查看整个图像,因此其预测由图像中的全球上下文提供信息。它还通过单一网络评估进行预测,这与R-CNN等系统

qq_53951823的博客 1556

『ISOBUS 入门』第 00 节 导言:ISOBUS 的宏观图景与入门路径

ISOBUS 是由三部分构成的集成系统:两段CAN网络(拖拉机与农具侧)、标准化通信约定及认证流程。其核心在于通过统一协议实现跨品牌设备即插即用。标准体系以ISO 11783为基础,分层涵盖物理层、传输层至应用层,关键功能如虚拟终端(VT)、任务控制器(TC)和文件服务器依赖严格的会话管理与角色分工。实际部署中,总线上传输多种协议报文,故障排查需结合地址声明、多包传输与角色权限分析。学习应从真实报文入手,建立“角色—数据流—功能块”认知链,避免仅学标准或仿真替代实测,方能有效应对复杂现场问题。

linx295的博客 286

自动生成Java代码,mybatis mapper文件工具

自动生成代码工具 通过freemarker模板生成MySQL数据库表对应的Javabean和mybatis mapper文件。 配置文件 模板文件 自定义异常 工具类 数据库工具类 文件工具类 模板工具类 字符串工具类 配置文件工具类 bean类 其他类...

4万+

DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)

本文主要探讨了Rockchip平台的DRM显示驱动架构及其在U-Boot阶段的实现。

一路寒风身如絮,命海沉浮客独行 1766

自动生成代码工具 其他类

自动生成代码工具 其他类 /** * @author InJavaWeTrust */ @FunctionalInterface public interface XMLElement<T, E> { /** * 获取配置文件中的元素 * @param t * @return ...

4万+

从零构建企业级多智能体系统:LangGraph 全流程实战 + 部署指南(含代码与架构图)

> 在大模型应用爆发的今天,如何构建一个可协作、可调试、可部署的多智能体系统?LangGraph 正在成为工程师的新宠。本文从原理剖析、流程建模、代码实战到前后端部署,手把手带你用 LangGraph 构建一个企业级 AI 助理系统,整合财务分析、法务审阅、报告生成与图表可视化等 Agent 模块,全面打通从用户输入到报告输出的全链路闭环。适合有工程思维的 AI 架构师、Agent 研发人员、以及大模型项目实践者。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3451

微信小程序marker 上的自定义气泡cover-view字体丢失以及max-width不生效问题

微信小程序marker 上的自定义气泡cover-view字体丢失以及max-width不生效问题

weixin_42028275的博客 1502

Mybatis 自动生成代码

最近做了一个项目,使用Mybatis自动生成代码,下面做一下总结: 一、提前准备: 1、工具类:mybatis-generator-core-1.3.2.jar 2、postgresql驱动:postgresql-9.2-1003-jdbc4.jar 3、xml文件 这些我都上传到了附件上,下载链接:Download 二、XML详解 咱们的核心配置文件:mybatisGenerato...

weixin_30493321的博客 147

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 222

自动生成代码工具 文件工具类

自动生成代码工具 文件工具类 import java.io.File; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.slf4j.Lo...

4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SpringBoot工具类直接读取配置文件内容

SpringBoot工具类直接读取配置文件内容 版本 springboot 2.x maven 场景 需求 : 工具类直接读取配置文件内容 这样就可以直接:Tools.xxxName方便取值 组成 :A.配置文件 : application.yml B.工具类内容 : JWTUtil.java C.注入容器类 : JWTConfigProperties.java 方法 : 配置文...

zuozhiyoulaisam的专栏 7674

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

自动生成代码工具 字符串工具类

自动生成代码工具 字符串工具类 import org.apache.commons.lang.StringUtils; import com.ijwt.exception.JavaTypeException; import com.ijwt.exception.MybatisTypeException; /** * @...

4万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

读取配置文件工具类

读取配置文件工具类 import java.util.Properties object PropertiesUtil { private val properties: Properties = new Properties /** * * 获取配置文件Properties对象 * * @author yore * @return ja...

爱是与世界平行 867

自动生成代码工具 配置文件

自动生成代码工具 配置文件 <?xml version="1.0" encoding="UTF-8" ?> <config> <global> <osdir value="E:\workspace\ijwt-ftl\src\main\resource...

4万+

springboot在Utils工具类中读取配置文件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33695082的博客 1万+

java properties 配置文件工具类

1.创建工具类 package com.ljw.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Properties 配置文件操作类 * */ public class PropertiesUtil { /** * 获取 Pro...

@不白的博客 6805

properties配置文件读取工具类

properties配置文件读取工具类     本文中将首先介绍一下读取properties配置文件的几种方式,然后详细介绍基于java.util.ResourceBundle的propertiesUtil工具类写法。 一、Java读取properties配置文件的方法,总的来说有3种: 1、基于ClassLoder读取配置文件 Properties properties = new P...

weixin_42315600的博客 1146
上一篇: 自动生成代码工具 字符串工具类
下一篇: java8 IntSummaryStatistics Collectors counting summingInt averagingInt maxBy minBy comparingInt
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值