`

Dom4j 解析及遍历XML 解决SQL硬编码

阅读更多

   在进行应用程序开发特别是一些主要以查询数据库为主的应用时,用很多SQL语句是必须的,这时,如果全把SQL语句写在程序代码中,很不利于维护代码,对于这种硬编码,我们自然可以通过将SQL语句保存到XML中,在程序中主要通过解析XML,然后找到对应的SQL语句,如果要修改或添加,我们也只需要按照自己定义的规则修改或添加,这样维护代码很容易。

 

  下面我写一个我自己常用的解决办法:

   我的思路是将SQL语句按照:

   <SqlData>

   <ClassName></ClassName>

   <Index></Index>

   <Sql>

  select * from table .....

                </Sql>

   </SqlData>

    ....

    ....

   的格式在xml进行存储,然后通过对应的className及Index号来进行查询,这样可以很方面的进行管理

   关于解析XML,我也提一下,我们知道常见的解析XML的方法有四种,分别是DOM,SAX,DOM4J和JDOM

   关于他们之间的具体区别和联系,可以参见下面的链接:http://developer.51cto.com/art/200903/117512.htm

   这里我分享一下通过DOM4J来进行我想要的XML解析:

   DOM4J解析XML相对比较简单,而且效率很高,但是需要外添加包dom4j-1.6.1.jar

   import java.io.File;

import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class SqlXmlPrase {
	
	String classFullName ;
	int index ;
	File file ;
	
	public SqlXmlPrase(String XmlPath){
		file = new File(XmlPath);
	}
	
	public String getSql(String classFullName,int index){
		String className = new Throwable().getStackTrace()[1].getClassName();//反射机制,得到当前类名,此处没有用到
		try {
			SAXReader saxReader = new SAXReader();//使用 SAXReader 解析 XML文档
			Document document = saxReader.read(file);
			Element root = document.getRootElement();//得到Root元素
			for(Iterator iterator = root.elementIterator();iterator.hasNext();)//依次进行迭代查询
			{
				Element element = (Element)iterator.next();
				String name= element.element("ClassName").getText();//查询ClassName
				int curIndex = Integer.parseInt(element.element("Index").getText());//查询Index
				if(name.equals(classFullName)&& index == curIndex)//进行比较,判断是否是自己需要的
				return element.element("Sql").getText();//如果是,返回
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return null;
	}
	
	public static void main(String[] argv){
		  SqlXmlPrase dom4jParser=new SqlXmlPrase("c:\\sqlconfig.xml");
		  System.out.println(dom4jParser.getSql("**想查的类名***", 2));
	}
		   
}

 

分享到:
评论

相关推荐

    dom4j解析及生成 xml代码收集

    下面我们将深入探讨DOM4J在XML解析和生成中的核心概念和技术。 1. **DOM4J解析XML** - **Document对象**:DOM4J的核心是`Document`对象,它代表整个XML文档。解析XML文件后,DOM4J会构建一个`Document`对象树,你...

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    dom4j---xml解析jar包

    **DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...

    使用dom4j和jaxen解析xml

    **dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的核心思想是基于DOM模型,但比DOM更轻量级,性能更好。它支持事件驱动和SAX...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    xmldom4j解析

    本教程将深入探讨XML DOM4J解析的相关知识点。 一、DOM4J基本概念 DOM4J是一种灵活的Java API,其设计目标是简化XML处理,提供高效且易于使用的API。与标准的DOM(Document Object Model)相比,DOM4J更轻量级,...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    分别使用DOM和DOM4j解析XML文件

    本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...

    使用 dom4j 解析 XML

    使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml

    DOM4J 解析XML

    **DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    使用Dom4j解析复杂的XML文件

    在处理复杂的XML文件时,我们通常需要借助解析库,如Dom4j,来帮助我们提取和操作XML中的信息。Dom4j是一个灵活且功能强大的Java库,它提供了丰富的API来处理XML文档,包括读取、写入、修改和查询。 1. **Dom4j基本...

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    Java使用sax、dom、dom4j解析xml文档

    Java提供了多种解析XML的API,包括SAX(Simple API for XML)、DOM(Document Object Model)以及DOM4J。下面我们将详细探讨这些解析方式及其在实际开发中的应用。 1. SAX解析器: SAX是一种基于事件驱动的解析器,...

    dom4j解析xml

    **DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...

    Dom4j解析和生成XML文档

    总结,DOM4J是Java开发中处理XML的得力工具,无论是解析还是生成XML文档,都提供了高效且灵活的解决方案。通过深入理解DOM4J的API和使用方法,开发者能够更好地管理和操作XML数据,提高项目的可维护性和灵活性。在...

Global site tag (gtag.js) - Google Analytics