`

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遍历解析XMLDom4j遍历解析XML

    dom4j解析及生成 xml代码收集

    dom4j解析及生成 xml代码收集dom4j解析及生成 xml代码收集

    Dom4j解析XML文档.doc

    Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc

    dom4j 解析写入xml

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

    Dom4j解析和生成XML文档

    Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档

    使用 dom4j 解析 XML

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

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

    此方法解析xml时,不受xml层级的限制。文件中包含了说明文档,java类,以及所使用到的*.jar。并对代码做了注释让你一目了然……

    用dom4j解析xml文件

    一个关于用dom4j解析xml,遍历xml,建立xml的简单例子

    使用Dom4j解析复杂的XML文件

    使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......

    dom4j解析xml文件代码示例

    dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例

    dom4j解析xml详解

    很详细的文档 可以借鉴下 希望对你有帮助

    Dom4j解析XML及中文问题

    Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题Dom4j解析XML及中文问题

    dom4j---xml解析jar包

    dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

    dom4j解析xml实例

    dom4j解析xml实例,dom4j解析xml实例,dom4j解析xml实例,

    使用dom4j解析XML

    dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...

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

    Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。

    dom4j解析XML所需jar包

    dom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jar

    xmldom4j解析

    xml解析,dom4j解析,xml循环节点处理,java代码 jar包执行20190331.rar

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

    分别使用DOM和DOM4j解析XML文件,因为目前使用最广泛的是DOM4j所以只写了用DOM4j对XML进行增删改查。

Global site tag (gtag.js) - Google Analytics