1.DB.java
package com.bn.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Iterator; import java.util.Properties; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DB { private static String dbServer; private static String dbName; private static String dbUser; private static String dbPwd; //java 项目 www.fhadmin.org public void readXML(){ SAXReader sr = new SAXReader();//获取读取xml的对象。 Document doc = null; String path1 = String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")); //System.out.println(path1); path1 = path1 + "../DB.xml"; //System.out.println(path1); try { doc = sr.read(path1); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); }//得到xml所在位置。然后开始读取。并将数据放入doc中 Element el_root = doc.getRootElement();//向外取数据,获取xml的根节点。 Iterator it = el_root.elementIterator();//从根节点下依次遍历,获取根节点下所有子节点 while(it.hasNext()){//遍历该子节点 Object o = it.next();//再获取该子节点下的子节点 Element el_row = (Element)o; String s = el_row.getText(); Iterator it_row = el_row.elementIterator(); int i =1; while(it_row.hasNext()){//遍历节点 Element el_ename = (Element)it_row.next();//获取该节点下的所有数据。 if(i == 1){ this.setDbServer(el_ename.getText()); //System.out.println(this.getDbServer()); //dbServer = el_ename.getText(); } if(i == 2){ this.setDbName(el_ename.getText()); // System.out.println(this.getDbName()); //dbName = el_ename.getText(); } if(i == 3){ this.setDbUser(el_ename.getText()); // System.out.println(this.getDbUser()); //dbUser = el_ename.getText(); } if(i == 4){ this.setDbPwd(el_ename.getText()); // System.out.println(this.getDbPwd()); //dbPwd = el_ename.getText(); } // System.out.println(i); i++; //System.out.println(el_ename.getText()); } //System.out.println(o); } } static { DB dbxml = new DB(); dbxml.readXML(); try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection createConn(){ DB dbxml = new DB(); //String name = dbxml.dbName; //System.out.println(name); //System.out.println(dbxml.getDbServer() + dbxml.getDbName() + dbxml.getDbUser() + dbxml.getDbPwd()); Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://"+ dbxml.getDbServer() +":3306/"+ dbxml.getDbName() +"?user="+ dbxml.getDbUser() +"&password="+ dbxml.getDbPwd()); //conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bnss?user=root&password=root"); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static PreparedStatement createPstmt(Connection conn, String sql){ PreparedStatement pstmt = null; try { pstmt = conn.prepareStatement(sql); } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static void close(Connection conn){ if(conn == null)return; try { conn.close(); conn = null; } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement stmt){ try { stmt.close(); stmt = null; } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet rs){ try { rs.close(); rs = null; } catch (SQLException e) { e.printStackTrace(); } } public String getDbName() { return dbName; } public void setDbName(String dbName) { this.dbName = dbName; } public String getDbServer() { return dbServer; } public String getDbUser() { return dbUser; } public String getDbPwd() { return dbPwd; } public void setDbServer(String dbServer) { this.dbServer = dbServer; } public void setDbUser(String dbUser) { this.dbUser = dbUser; } public void setDbPwd(String dbPwd) { this.dbPwd = dbPwd; } }
2.ParseXML.java
package com.bn.util; import java.util.Properties; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import java.net.URL; //java项目www.fhadmin.org public class ParseXML{ //定义一个Properties 用来存放 dbhost dbuser dbpassword的值 private Properties props; //这里的props public Properties getProps() { return this.props; } public void parse(String filename) { //将我们的解析器对象化 ConfigParser handler = new ConfigParser(); //获取SAX工厂对象 SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); factory.setValidating(false); //获取SAX解析 SAXParser parser=null; try { parser = factory.newSAXParser(); } catch (Exception e1) { e1.printStackTrace(); } URL confURL = null; //得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes //下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义 try{ confURL = ParseXML.class.getClassLoader().getResource(filename); //只需要将我们所需要的XML文件名字输入进去就可以了! }catch(Exception e){ System.out.print(e.toString()); } try { //将解析器和解析对象myenv.xml联系起来,开始解析 parser.parse(confURL.toString(), handler); //获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了 props = handler.getProps(); }catch(Exception e){ System.out.println(e.toString()); }finally{ factory=null; parser=null; handler=null; } } }
3.ConfigParser.java
package com.bn.util; import org.xml.sax.Attributes; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.SAXException; import java.util.Properties; //使用DefaultHandler的好处 是 不必陈列出所有方法, //java项目www.fhadmin.org public class ConfigParser extends DefaultHandler { ////定义一个Properties 用来存放 dbhost dbuser dbpassword的值 private Properties props; private String currentSet; private String currentName; private StringBuffer currentValue = new StringBuffer(); //构建器初始化props public ConfigParser() { this.props = new Properties(); } public Properties getProps() { return this.props; } //定义开始解析元素的方法. 这里是将<xxx>中的名称xxx提取出来. public void startElement(String uri, String localName, String qName, Attributes attributes)throws SAXException { currentValue.delete(0, currentValue.length()); this.currentName =qName; } //这里是将<xxx></xxx>之间的值加入到currentValue public void characters(char[] ch, int start, int length) throws SAXException { currentValue.append(ch, start, length); } //在遇到</xxx>结束后,将之前的名称和值一一对应保存在props中 public void endElement(String uri, String localName, String qName) throws SAXException { props.put(qName.toLowerCase(), currentValue.toString().trim()); } }
相关推荐
以上就是Java读取XML数据的主要方法。选择哪种方式取决于具体的需求,如处理大型XML文件时,SAX和StAX更为高效;而如果需要频繁查询和修改XML结构,DOM和DOM相关的库可能更适合。在实际开发中,可以根据项目规模、...
Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...
DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点遍历和操作XML数据。使用Java的`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`接口可以实现DOM解析。 ```java ...
使用 Java 读取 XML 配置文件 Java 语言和 XML 技术可以说是黄金组合,网上已经有很多文章介绍 XML 在电子商务中的数据交换的作用。但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是...
在Java编程中,读取XML文件并将其转换为树形结构是一种常见的操作,尤其是在处理配置文件、数据交换或解析XML文档时。以下是一篇详细解释如何实现这一过程的文章。 首先,我们需要了解XML(eXtensible Markup ...
#### 三、Java读取XML文件 对于XML文件的读取,我们可以采用Java标准库中的`BufferedReader`配合`InputStreamReader`的方式来进行处理。这样可以在读取文件的同时指定正确的字符编码,从而避免乱码问题。 ```java ...
Java 读取 XML 文件内容的四种方法 Java 语言提供了多种方法来读取 XML 文件内容,以下是四种常见的方法: 1. DOM(Document Object Model) DOM 是一种基于树的模型,它将 XML 文档表示为一个层次结构的节点或...
Java读取XML文件是开发过程中常见的任务,JDOM是一个用于处理XML文档的Java库,它提供了方便、高效的方式来创建和操作XML数据。本篇将详细讲解如何使用JDOM来读取XML文件,以及相关的源码解析。 首先,我们需要了解...
这些API提供了不同的方式来解析和操作XML文档。 1. **DOM解析**: DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许程序员通过节点进行访问。以下是一个简单的DOM解析示例: ```java import javax....
Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...
Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常见的方法,分别使用 DOM、DOM4J、JDOM 和 SAX 解析器。 第一种方法:使用 DOM DOM(Document Object Model)是一种树形结构,...
二、Java读取XML文件 1. 使用DOM解析: 读取XML文件时,首先会将整个XML文档加载到内存中的DOM树,然后通过API遍历和访问各个节点。 示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax....
为了在Java程序中解析、读取或操作XML文档,我们需要依赖一些特定的库,这些库通常被打包成JAR(Java Archive)文件。在“java读取XML用到的jar包集合”中,包含了9个关键的JAR文件,它们提供了处理XML所需的API和...
Java作为一种强大的编程语言,提供了多种方式来读取和操作XML文档,其中包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。本教程将重点介绍如何使用SAXReader在Java中...
SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件
Java操作XML工具包是开发过程中不可或缺的部分,尤其是在处理与数据交换、配置文件或者与服务器通信相关的任务时。这里提到的两个关键库——XStream和DOM4J,都是Java中广泛使用的XML处理工具。 XStream是一个Java...
下面是一个简单的Java读取XML的StAX示例: ```java import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; import java.io....
在Java编程中,读取XML文件并从中获取Oracle数据库连接是一项常见的...以上就是关于"Java读取xml文件中oracle数据库连接"的相关知识,希望对您有所帮助。在实际项目中,可能还需要考虑异常处理、连接池管理等高级话题。
Java操作XML文件是Java开发中常见的一项任务,特别是在处理配置、数据交换或存储结构化信息时。XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨...