在进行应用程序开发特别是一些主要以查询数据库为主的应用时,用很多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解析和生成中的核心概念和技术。 1. **DOM4J解析XML** - **Document对象**:DOM4J的核心是`Document`对象,它代表整个XML文档。解析XML文件后,DOM4J会构建一个`Document`对象树,你...
在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
**DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...
**dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的核心思想是基于DOM模型,但比DOM更轻量级,性能更好。它支持事件驱动和SAX...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
本教程将深入探讨XML DOM4J解析的相关知识点。 一、DOM4J基本概念 DOM4J是一种灵活的Java API,其设计目标是简化XML处理,提供高效且易于使用的API。与标准的DOM(Document Object Model)相比,DOM4J更轻量级,...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
**DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
在处理复杂的XML文件时,我们通常需要借助解析库,如Dom4j,来帮助我们提取和操作XML中的信息。Dom4j是一个灵活且功能强大的Java库,它提供了丰富的API来处理XML文档,包括读取、写入、修改和查询。 1. **Dom4j基本...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
Java提供了多种解析XML的API,包括SAX(Simple API for XML)、DOM(Document Object Model)以及DOM4J。下面我们将详细探讨这些解析方式及其在实际开发中的应用。 1. SAX解析器: SAX是一种基于事件驱动的解析器,...
**DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...
总结,DOM4J是Java开发中处理XML的得力工具,无论是解析还是生成XML文档,都提供了高效且灵活的解决方案。通过深入理解DOM4J的API和使用方法,开发者能够更好地管理和操作XML数据,提高项目的可维护性和灵活性。在...