`
dylan0514sina.cn
  • 浏览: 95032 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

commons-configuration的使用

阅读更多
关于apache commons的综合使用

背景:开发一个使用xml配置文件来处理跨数据库的数据操作。例如,我本地有一个mysql数据库叫A,里面有一个表叫test,test有两个字段,fistName和lastName;另一个服务器上有一个Oracle数据库叫B,里面有两个表,test1,test2,他两的结构是一样的,都有,Name这个字段;现在就是要把A中的表test里的fistName和lastName做字符串连接,然后存到B中的表test1,test2的Name字段。
  
commons-configuration的使用
得到XMLConfiguration 的几种方式
XMLConfiguration config  = new XMLConfiguration(String);
XMLConfiguration config = new XMLConfiguration();
config.load(String);

我自己是不喜欢操作xml的,所以就没有使用dom4j和jdom的习惯。使用commons-configuration令我最爽的地方是指针式的访问方式,例如,在如下xml中,如果你得到code属性的值,只需要写如下Java代码
List codes = config.getList("columns.column.[@code]");
  <?xml version="1.0" encoding="UTF-8"?>	
<origin dataSource="ds">
		
	<columns>
				<column code="ID" name="" type="java.lang.Integer" length="" />
				<column code="FIRSTNAME" name="" type="java.lang.String" length="" />
				<column code="LASTNAME" name="" type="java.lang.String" length="" />
				<column code="SEX" name="" type="java.lang.String" length="" />
	</columns>
</origin>

如果你的得到的字符串中有逗号,那么他会以","分割,只会得到第一个字符串。所以你必须用"\"转义,例如
 String array = config.getString("config.array"); //array="10",并不是10,20,30,40
 String scalar = config.getString("config.scalar"); // scalar="3,1415"
 String text = config.getString("config.cite.[@text]"); // text ="To be or not to be, this is the question!"

 <config>
   <array>10,20,30,40</array>
   <scalar>3\,1415</scalar>
   <cite text="To be or not to be\, this is the question!"/>
 </config>

默认情况下,config以","分割字符串,其实还可以使用如下方法(AbstractConfiguration 是XMLConfiguration 的父类)
AbstractConfiguration.setListDelimiter(char listDelimiter) //设置限定符
AbstractConfiguration.setDelimiterParsingDisabled(boolean) //设置限定符是否有效

注意:以上方法的设置要xml文件load之前(换而言之,是不能使用XMLConfiguration config = new XMLConfiguration(String)),否则,此次设置将无效,正确使用如下方式
XMLConfiguration config = new XMLConfiguration();
config.setDelimiterParsingDisabled(true);
try {
	config.load(path);
    } catch (Exception e) {
	// TODO Auto-generated catch block
	logger.error("载入文件出错",e);
} 

还有一个比较常用的方法,例如你想把column中的属性全部取出到一个叫Bean的Java类中,你就必须定位到column,这时常用以下方式
List<HierarchicalConfiguration>  columns = (List<HierarchicalConfiguration>) config.configurationsAt("origin.columns.column");
List Beans = new ArrayList(columns.size());
	for (int i = 0; i < columns.size(); i++) {
	HierarchicalConfiguration column = (HierarchicalConfiguration)columns.get(i);
      Bean bean = new Bean();
      bean.setCode(column.getString("[@code]"));
      bean.setName(column.getString("[@name]"));
      ...
      ...
      beans.add(bean);
	}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    commons-configuration-1.10-API文档-中文版.zip

    赠送jar包:commons-configuration-1.10.jar 赠送原API文档:commons-configuration-1.10-javadoc.jar 赠送源代码:commons-configuration-1.10-sources.jar 包含翻译后的API文档:commons-configuration-1.10-...

    commons-configuration2-2.1.1-API文档-中文版.zip

    赠送jar包:commons-configuration2-2.1.1.jar; 赠送原API文档:commons-configuration2-2.1.1-javadoc.jar; 赠送源代码:commons-configuration2-2.1.1-sources.jar; 赠送Maven依赖信息文件:commons-...

    commons-configuration2-2.0.jar

    commons-configuration2-2.0.jar Apache commons-configuration 读取配置文件

    commons-configuration2-2.1.1-API文档-中英对照版.zip

    赠送jar包:commons-configuration2-2.1.1.jar; 赠送原API文档:commons-configuration2-2.1.1-javadoc.jar; 赠送源代码:commons-configuration2-2.1.1-sources.jar; 赠送Maven依赖信息文件:commons-...

    commons-configuration-1.10-API文档-中英对照版.zip

    赠送jar包:commons-configuration-1.10.jar; 赠送原API文档:commons-configuration-1.10-javadoc.jar; 赠送源代码:commons-configuration-1.10-sources.jar; 赠送Maven依赖信息文件:commons-configuration-...

    官方commons-configuration-1.10的jar包

    在给定的"commons-configuration-1.10"版本中,我们可以深入探讨以下几个核心知识点: 1. **配置文件支持**:Commons Configuration 支持多种格式的配置文件,包括XML、INI、Properties和HOCON(Hadoop配置格式)。...

    commons-configuration-1.2.jar

    commons-configuration-1.2.jar commons-configuration-1.2.jar

    commons-configuration-1.8.jar

    commons-configuration-1.8.jar

    commons-configuration-1.10.jar

    在本文中,我们将深入探讨`commons-configuration-1.10.jar`这个特定版本的特性、功能及其使用方法。 `commons-configuration-1.10.jar`是Apache Commons Configuration库的一个稳定版本,发布于2013年,它为开发者...

    commons-configuration-1.6

    commons-configuration-1.6

    commons-configuration-1.10

    commons-configuration-1.10

    Commons-configuration-1.3-API.chm

    Commons-configuration-1.3-API.chm英文版

    commons-configuration-1.7-API文档-中文版.zip

    赠送jar包:commons-configuration-1.7.jar; 赠送原API文档:commons-configuration-1.7-javadoc.jar; 赠送源代码:commons-configuration-1.7-sources.jar; 赠送Maven依赖信息文件:commons-configuration-1.7....

    commons-configuration-1.7-API文档-中英对照版.zip

    赠送jar包:commons-configuration-1.7.jar; 赠送原API文档:commons-configuration-1.7-javadoc.jar; 赠送源代码:commons-configuration-1.7-sources.jar; 赠送Maven依赖信息文件:commons-configuration-1.7....

    commons-configuration-1.3.jar

    commons-configuration-1.3.jar 功能支撑包。

    commons-configuration-1.0.jar

    hadoop 项目中必要commons-configuration-1.0.jar 包

    commons-configuration

    - `commons-configuration-1.9-bin.zip` 包含了编译后的二进制库,通常包含JAR文件,这些是运行时需要引入的库文件,用于在项目中使用Commons Configuration。 - `commons-configuration-1.9-src.zip` 则包含了...

    commons-configuration2-2.1-bin.zip

    Commons Configuration 使用`XMLConfiguration`类来处理XML配置文件。它支持XPath表达式,允许你通过路径定位到特定的配置元素。此外,XMLConfiguration还具备递归解析嵌套元素的能力,这对于大型复杂应用来说非常...

    commons-configuration-1.7

    `commons-configuration-1.7`是该库的一个版本,它包含了源代码,允许开发者深入理解其内部工作原理并进行定制或扩展。 1. **配置资源类型**: - XML配置:Apache Commons Configuration 支持读取和解析XML格式的...

Global site tag (gtag.js) - Google Analytics