本程序用到两个jar包,一个是链接Oracle数据库的jar包,另一个是dom4j的jar包。
程序源代码如下:
package com.swanson.myjdbc;
import java.io.File;
import java.io.FileWriter;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import oracle.jdbc.driver.OracleTypes;
public class CreateXML {
/**
* 从数据库中导出表emp,生成emp.xml文件
*/
public void startCreate(File file) {
//链接数据库,获取结果集,此处我调用了一个存储过程,当然也可以直接获得一个结果集
Connection con = null;
CallableStatement cst = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String user = "scott";
String password = "tiger";
con = DriverManager.getConnection(url, user, password);
String sql = "{call my_proc02(?)}";
cst = con.prepareCall(sql);
cst.registerOutParameter(1, OracleTypes.CURSOR);
cst.execute();
rs = (ResultSet) cst.getObject(1);
//获取结果集的元数据
ResultSetMetaData rsmd = rs.getMetaData();
//调用创建XML文件方法
createXmlFile(rs, rsmd, file);
// while(rs.next()){
// System.out.println(rs.getString(2));
// }
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (cst != null) {
cst.close();
}
if (con != null) {
cst.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void createXmlFile(ResultSet rs, ResultSetMetaData rsmd, File file) {
XMLWriter xmlWriter = null;
String elementValue = "";
Document doc = DocumentHelper.createDocument();
Element rootElement = doc.addElement("ROWDATA");
//rootElement.addComment("创建员工表的xml文件!");
try {
while (rs.next()) {
Element rowElement = rootElement.addElement("ROW");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
Element elementName = rowElement.addElement(rsmd
.getColumnName(i));
// 获取每一列的值
// System.out.println(rsmd.getColumnCount());
Object obj = rs.getObject(rsmd.getColumnName(i));
//对于元数据为null的数据进行过滤
if (obj != null) {
elementValue = rs.getObject(rsmd.getColumnName(i))
.toString().trim();
} else {
elementValue = "";
}
// System.out.println(elementValue);
elementName.setText(elementValue);
}
}
xmlWriter = new XMLWriter(new FileWriter(file));
xmlWriter.write(doc);
System.out.println("数据库导入xml完成,文件emp.xml已经生成!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (xmlWriter != null) {
xmlWriter.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
File file = new File("d:\\emp.xml");
CreateXML cx = new CreateXML();
cx.startCreate(file);
}
}
分享到:
相关推荐
通过结合DOM4J和Oracle JDBC驱动,我们可以轻松地从XML文件获取数据并将其存储到Oracle数据库中。这个实例展示了如何将这两个技术整合在一起,为XML数据管理和数据库操作提供了一种有效的方法。在实际开发中,可以...
Oracle数据库的核心组成部分包括实例(Instance)和数据库文件(Database Files)。其中,实例由系统全局区(SGA)和后台进程组成;而数据库文件则包含了控制文件、重做日志文件以及数据文件等。 #### 二、表空间的...
通过上述步骤,XML配置文件便能成功地连接到Oracle数据库。这种方式使得数据库连接信息易于管理和维护,同时也使得应用程序更具有可移植性。在大型项目中,这种配置方式非常常见,因为它允许开发者在不修改代码的...
### Oracle使用XMLDOM包保存XML节点数据到数据库表中的实践 #### 一、背景与需求分析 在实际项目开发过程中,经常会遇到与第三方系统交互的需求。这些第三方接口往往返回的数据格式为XML。为了方便后续处理及存储...
在开发、文档编写或分享数据库设计时,有时我们需要将Oracle表结构导出到更便于阅读和分享的格式,比如Microsoft Word文档。这个过程可以帮助团队成员更好地理解数据库结构,也可以作为备份或审计的参考。 "oracle...
在Oracle数据库中,对于存储在数据库中的XML文件进行查询和处理是一项非常实用的功能。这种能力可以帮助我们更高效地管理数据,并且能够灵活地应对那些半结构化数据(例如XML)所带来的挑战。本文将详细介绍如何在...
kettle动态解析XML文件数据导入Oracle或者其他数据库 需求背景: 因为客户每天都要通过接口通过ftp上传固定格式的xml的文件,需要每天定时解析指定目录下的指定名称的xml文件导入Oracle和其他的数据库,所以开发了这...
* Access 数据库 MDB 文件是一种数据库文件格式,需要使用 ODBC 导入器工具将其导入到 Oracle 数据库中。 * 使用 PL/SQL 工具可以实现数据的导入和导出。 * 选择 ODBC 导入器工具可以将数据从其他数据库导入到 ...
在Java编程中,链接Oracle数据库并生成XML...总的来说,Java连接Oracle数据库生成XML文件的过程涉及到数据库操作、XML处理和可能的特定格式要求。正确理解和运用这些技术,可以帮助开发者高效地完成数据的读取和转换。
用java实现的从Oracle数据库中采用dom4j方式,生成与数据库表对应的xml文件,简单易懂,欢迎大家学习交流
例如,可以通过dom4j解析XML配置文件,将其中的数据插入到Oracle数据库;反之,也可以从数据库中查询数据,然后用dom4j生成XML报告。这种组合使得数据交换和存储更加便捷,提高了代码的可维护性和灵活性。 总结,...
这个命令允许我们直接从XML文件创建数据库表或者更新已有表的数据。例如,假设我们有一个名为`data.xml`的文件,包含一个`employees`元素,其中每个`employee`元素代表一个员工记录。我们可以使用以下SQL命令将XML...
在Java编程中,读取XML文件并从中获取Oracle数据库连接是一项常见的任务,特别是在需要动态配置数据库连接信息的应用中。XML文件通常被用作配置文件,因为它具有良好的结构和可读性,适合存储像数据库连接这样的配置...
Oracle 数据库实例用户表空间之间的关系 Oracle 数据库实例用户表空间之间的关系是 Oracle 数据库管理系统的核心概念。了解它们之间的关系对于数据库的设计、管理和优化至关重要。 数据库 Oracle 数据库是一个...
exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows 中,可以打开命令行窗口,输入 exp 用户名/密码@标识 file=d...
Oracle数据库表结构导出器是一套用来完成将Oracle数据库中的表结构导出成Word文档,并输出标准的打印报表格式的软件。亲测oracle绝对好使 ,另附有链接信息,请先看好说明再操作.不会的加我qq87611894
### Kettle 从 Oracle 数据库导数据到 Hive 表 #### 背景与目的 在企业级数据处理场景中,随着大数据技术的发展,越来越多的企业选择将原有的关系型数据库(如 Oracle)中的数据迁移到基于 Hadoop 生态系统的数据...
DBExport2.51 For ORACLE.xls 是实际的导出结果文件,它展示了数据库表结构的具体内容。在这个Excel文件中,你可以看到每个表的名称、字段名、数据类型、长度、是否为主键、外键信息以及其他元数据。这使得用户可以...