Dom4jTest.java
package com.test.dom4j; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class Dom4jTest { // 读取xml文件 public static void readXML(Element rootElement) { // 输入根元素节点名称 System.out.println(rootElement.getName()); for (Iterator i = rootElement.elementIterator(); i.hasNext();) { Element element = (Element) i.next(); // 输入根元素下所有子节点名称 System.out.println(element.getName()); for (Iterator j = element.attributeIterator(); j.hasNext();) { Attribute attribute = (Attribute) j.next(); // 输入根元素下每个子节点的属性名称及属性值 System.out.println(attribute.getName() + "=" + attribute.getValue()); } } } // 递归读取xml文件 public static void recurseReadXML(Element element) { for (int i = 0, size = element.nodeCount(); i < size; i++) { Node node = element.node(i); if (node instanceof Element) { System.out.print(node.getName() + "["); for (Iterator j = ((Element) node).attributeIterator(); j.hasNext();) { Attribute attribute = (Attribute) j.next(); // 输入根元素下每个子节点的属性名称及属性值 System.out.print(attribute.getName() + "=\"" + attribute.getValue() + "\" "); } System.out.println("]"); recurseReadXML((Element) node); } } } // 创建XML文件 public static void createXML() { Document document = DocumentHelper.createDocument(); Element peoples = document.addElement("peoples"); Element people1 = peoples.addElement("people").addAttribute("id", "001") .addAttribute("email", "zhangsan@126.com"); people1.addElement("name").addText("张三"); people1.addElement("sex").addText("男"); Element people2 = peoples.addElement("people").addAttribute("id", "002") .addAttribute("email", "lisi@126.com"); people2.addElement("name").addText("李四"); people2.addElement("sex").addText("女"); try { OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter("test.xml"), format); format.setEncoding("GBK");// 解决输出中文乱码问题 // FileOutputStream代替FileWriter也可以解决输出中文乱码问题 // XMLWriter writer = new XMLWriter(new FileOutputStream("test.xml"), format); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { try { SAXReader reader = new SAXReader(); Document document = reader.read(new File("d:/test.xml")); Element rootElement = document.getRootElement(); // 读取xml文件 readXML(rootElement); System.out.println("*******************"); // 递归读取xml文件 recurseReadXML(rootElement); // 创建XML文件 createXML(); } catch (DocumentException e) { e.printStackTrace(); } } }
Java6里的数据库
JDK6除了传统的 bin、jre 等目录,JDK 6 新增了一个名为 db 的目录。这便是 Java 6 的新成员:Java DB。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。它只有 2MB 大小,对比动辄上 G 的数据库来说可谓袖珍。但这并不妨碍 Derby 功能齐备,支持几乎大部分的数据库应用所需要的特性。更难能可贵的是,依托于 ASF 强大的社区力量,Derby 得到了包括 IBM 和 Sun 等大公司以及全世界优秀程序员们的支持。这也难怪 Sun 公司会选择其 10.2.2 版本纳入到 JDK 6 中,作为内嵌的数据库。这就好像为 JDK 注入了一股全新的活力:Java 程序员不再需要耗费大量精力安装和配置数据库,就能进行安全、易用、标准、并且免费的数据库编程。在这一章中,我们将初窥 Java DB 的世界,来探究如何使用它编写出功能丰富的程序。
既然有了内嵌(embedded)的数据库,就让我们从一个简单的范例开始,试着使用它吧。这个程序做了大多数数据库应用都可能会做的操作:在 DBMS 中创建了一个名为 helloDB 的数据库;创建了一张数据表,取名为 hellotable;向表内插入了两条数据;然后,查询数据并将结果打印在控制台上;最后,删除表和数据库,释放资源。
package com.test.dreby; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class HelloJavaDB { public static void main(String[] args) { try { // 加载驱动 Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Properties props = new Properties(); props.put("user", "user1"); props.put("password", "user1"); // 创建并连接数据库helloDB Connection conn = DriverManager.getConnection("jdbc:derby:helloDB;create=true", props); conn.setAutoCommit(false); Statement stat = conn.createStatement(); stat.execute("create table hellotable(name varchar(40), score int)"); stat.execute("insert into hellotable values('Ruth Cao', 86)"); stat.execute("insert into hellotable values ('Flora Shi', 92)"); ResultSet rs = stat.executeQuery("select name, score from hellotable order by score"); while (rs.next()) { StringBuilder builder = new StringBuilder(rs.getString(1)); builder.append("\t"); builder.append(rs.getInt(2)); System.out.println(builder.toString()); } //stat.execute("drop table hellotable"); rs.close(); stat.close(); conn.commit(); conn.setAutoCommit(true); conn.close(); try { DriverManager.getConnection("jdbc:derby:;shutdown=true"); } catch (SQLException e) { System.out.println("Database shut down normally"); } } catch (Throwable e) { e.printStackTrace(); } } }
DatabaseMetaDataTest.java
package com.test.dreby; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.Properties; public class DatabaseMetaDataTest { public static void main(String[] args) { try { // 加载驱动 Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Properties props = new Properties(); props.put("user", "user1"); props.put("password", "user1"); // 创建并连接数据库helloDB Connection conn = DriverManager.getConnection("jdbc:derby:helloDB;create=false", props); DatabaseMetaData dm = conn.getMetaData(); /*ResultSet rs = dm.getTables(null, null, null, new String[] { "TABLE" }); while (rs.next()) { System.out.println(rs.getString("TABLE_NAME")); }*/ ResultSet rs = dm.getColumns(null, null, "HELLOTABLE", null); while (rs.next()) { int dataType = rs.getInt("DATA_TYPE"); String strDataType = ""; switch(dataType){ case Types.VARCHAR: strDataType = "varchar"; break; case Types.INTEGER: strDataType = "int"; break; } System.out.println(rs.getString("COLUMN_NAME") + " " + strDataType); } rs.close(); conn.close(); try { DriverManager.getConnection("jdbc:derby:;shutdown=true"); } catch (SQLException e) { System.out.println("Database shut down normally"); } } catch (Throwable e) { e.printStackTrace(); } } }
注:通过以上dom4j和javaDB的例子,自己可以编写一个生成数据库表结构的一个XML文件的例子
相关推荐
在Java开发领域,`log4j`和`dom4j`是两个非常重要的库,它们分别专注于日志管理和XML处理。下面将详细讲解这两个库的功能、用途以及如何使用。 首先,`log4j`是一个开源的日志记录框架,由Apache软件基金会开发。它...
DOM4J是一个较为流行的第三方XML处理库,它扩展了Java标准库的DOM处理能力,提供了更丰富的API和更好的性能。在处理大型XML文件或需要特定高级功能时,开发者可能会选择使用DOM4J。 总结来说,本文通过具体的代码...
- **DOM4J介绍**:DOM4J是一个Java库,专门用于处理XML文件。相比于其他XML处理技术(如SAX、DOM等),DOM4J提供了更为简洁和高效的API。它支持读取和写入XML文件,并允许开发者轻松地创建、修改和查询XML数据。对于...
DOM4J是一个强大的Java库,专门用于处理XML文档。它是一个灵活且高性能的库,提供了丰富的API来解析、创建、修改以及操作XML内容。在Java Web项目中,DOM4J常被用来作为XML处理的标准工具,因为它具有高效、易于理解...
另外,JDOM和DOM4J是两个流行的DOM替代库,提供了更友好的API来操作XML,尤其是对于复杂的XML结构。 JDOM简化了DOM的一些操作,它使用Java对象直接映射XML元素,使得操作更直观。DOM4J则在DOM的基础上进行了扩展,...
在Java世界里,API涵盖了许多不同的库和框架,包括JDK(Java Development Kit)的基础库,jQuery这样的JavaScript库,Berkeley DB这样的数据库系统,以及DOM4J这样的XML处理库,还有Java EE(Java Enterprise ...
本文详细介绍了如何使用Java编写XML文件,包括使用DOM、SAX、JDOM和DOM4J等技术,以及通过示例代码展示了具体的实现过程。对于那些希望深入了解Java与XML集成的开发人员来说,这是一份宝贵的参考资料。
为了能够有效地读取和操作XML文件,各种编程语言提供了多种解析库,其中JDOM和DOM4j是在Java环境中较为流行的两种工具。本文将详细介绍如何使用JDOM和DOM4j进行XML文件解析,包括所需环境配置、核心概念以及具体代码...
本篇文章将深入探讨四种主流的XML解析方式——DOM、SAX、JDOM和DOM4J,以及它们的优缺点。 1. DOM(Document Object Model)解析: DOM解析将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历和...
Java中的DOM4J和JAXB是处理XML的常用库。例如,使用DOM4J读取XML文档: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Main { public static ...
在Java中,处理XML文档通常有四种主要的解析方法:DOM(文档对象模型)、SAX(简单API对于XML)、JDOM(Java特定的DOM)以及DOM4J。每种解析方法都有自己的特点和适用场景,下面将详细介绍这些解析方法以及提供的...
在Java中,有四种常见的XML解析方法:SAX、DOM、JDOM和DOM4J。下面将详细介绍这四种解析方式及其源码示例。 1. **SAX解析** - **工作原理**:SAX(Simple API for XML)是一种基于事件驱动的解析方式。它逐行读取...
6. dom4j-1.6.1.jar:DOM4J是一个用于处理XML的Java库,可以用于读取、修改和生成XML文档,可能用于处理配置文件或升级日志的XML格式化。 7. jtds-1.2.jar:这是一个开源的JDBC驱动,用于连接Microsoft SQL Server...
4. DOM4J:一个Java的XML API,提供了丰富的功能和简单易用的API。 5. JDOM:为Java设计的DOM实现,提供了更快的性能和更简洁的API。 总的来说,Java提供了多种方式来处理XML文件,可以根据实际需求选择合适的API或...
`dom4j`是一个强大的Java XML API,它提供了更简单易用的方法来处理XML文件。以下是如何使用`dom4j`来读取XML文件: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....
* 日志基础:掌握 Log4j 1.x & 2.x、LogBack、SLF4J 等日志系统的使用。 阶段八:高级知识 * 数据结构基础:掌握数据结构的基础知识,例如数组、链表、栈、队列、树、图等。 * 算法基础:掌握常用的算法,例如排序...
下面我们将总结四种常见的 Java 读取 XML 文件的方法,分别是 DOM、SAX、JDOM 和 DOM4J。 DOM 方式 DOM(Document Object Model)是一种基于树形结构的 XML 解析方式,使用 Java 中的 org.w3c.dom 包来实现。DOM ...
xml文件导入到mysql数据库中,包括文件:ConnectionUtils.java,InsertDT.java,db_mysql.properties,test01.xml,需要的jar包dom4j-1.6.1.jar,mysql-connection-java-3.1.1.3-bin.jar,jaxen-1.1-beta-7.jar