用JSP实现XML文件到Oracle数据库的导入和导出

合集下载

将XML文档导入到数据库表!

将XML文档导入到数据库表!

将XML⽂档导⼊到数据库表!xml是⼀个符合国际标准的并且极其简单的可扩展标记语⾔,但有时候我们会遇到将xml⽂档导⼊到数据库的情况。

下⾯介绍下如何完成。

⾸先将上⼀篇中的person.xml⽂档拷贝到debug⽬录下(也就是为了⽅便啦^_^),这⾥就没有⽤到配置⽂件,为了⽅便就直接⽤我的数据库;1 XDocument xDoc = XDocument.Load("person.xml");2using (SqlConnection conn = new SqlConnection(@"server=.;database=Mydb;uid=sa;pwd=xqt"))3 {4using (SqlCommand cmd = new SqlCommand("insert into Person(name,gender,age) values(@Name,@Gender,@Age);", conn))5 {6// 装配参数7 SqlParameter[] paras = {8new SqlParameter("@Name", SqlDbType.NVarChar),9new SqlParameter("@Gender",SqlDbType.NChar),10new SqlParameter("@Age",SqlDbType.Int)11 };12 cmd.Parameters.AddRange(paras);13 conn.Open();14foreach (XElement item in xDoc.Root.Elements())15 {16// 遍历的东西就是Person,就是要加⼊到数据库中的对象17 paras[0].Value = item.Element("Name").Value;18 paras[1].Value = item.Element("Gender").Value;19 paras[2].Value = Convert.ToInt32(item.Element("Age").Value);20 cmd.ExecuteNonQuery();21 }22 }23 }。

利用JBuilder实现将XML文档中的数据写入到数据库表中应用实例

利用JBuilder实现将XML文档中的数据写入到数据库表中应用实例

1.1利用JBuilder实现将XML文档中的数据写入到数据库表中应用实例下面利用JBuilder中的model-based XML 数据库组件库中的组件来实现将XML数据(给定XML文件为Authors.xml、DTD文件为Authors.dtd)转换为数据库表的数据。

为能够完成该实验,必须首先创建出数据库文件和对应的数据库表,然后才可以根据XML文件中的数据,导入到数据库表中。

1、本例所要采用的XML文件和其DTD文件如下(1)Authors.xml文件(为SQLServer2000中的pubs数据库中的author表的数据),该XML文件主要实现数据的输入和输出。

<?xml version="1.0" encoding="UTF-8"?><Authors><Author><au_id>172-32-1176</au_id><au_lname>White</au_lname><au_fname>Johnson</au_fname><phone>408 496-7223</phone><address>10932 Bigge Rd.</address><city>Menlo Park</city><state>CA</state><zip>94025</zip><contract>1</contract></Author>…</Authors>(2)Authors.dtd 文件<?xml version="1.0" encoding="UTF-8" ?><!ELEMENT state ( #PCDATA ) ><!ELEMENT zip ( #PCDATA ) ><!ELEMENT city ( #PCDATA ) ><!ELEMENT Author ( au_id, au_lname, au_fname, phone, address, city, state, zip, contract ) ><!ELEMENT au_fname ( #PCDATA ) ><!ELEMENT Authors ( Author+ ) ><!ELEMENT phone ( #PCDATA ) ><!ELEMENT au_id ( #PCDATA ) ><!ELEMENT address ( #PCDATA ) ><!ELEMENT contract ( #PCDATA ) ><!ELEMENT au_lname ( #PCDATA ) >2、启动SQLServer2000的企业管理器,首先要创建出本例所要导入的数据库文件XMLDataBase(1)右击数据库节点(2)数据库名称为XMLDataBase(3)修改sa用户帐号的属性以设置自己的密码,使得能够访问该XMLDataBase数据库文件(4)XMLDataBase内容如下,但没有与XML文件相对应的数据库表存在.3、新建一个Project,名称为XMLToDataBase(或者在前面的Project中直接添加)4、利用XML-DBMS向导创建出该XML文件所对应的map 和 SQL 脚本文件(1)在Object Gallery中选择“XML-DBMS”项目(2)选择数据库●SQLServer2000的JDBC 驱动程序类:com.microsoft.jdbc.sqlserver.SQLServerDriver●数据库的数据源:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=XMLDataBase●用户名称:sa●密码:自己定义的密码(3)点击“Next”下一步按钮给定XML文件所对应的*.dtd文件最后,点击“Finish”按钮,此时将产生出对应的*.map(将XML文件中的各个元素字段映射为数据库表中的各个字段,因此它定义了XML文件和数据库表之间的关系)和*.sql 文件(创建出该数据库表的SQL脚本)注意:此时在Authors.map文件中出现一个错误,可以将该DTD的引入项目删除掉5、依据SQL脚本创建出数据库XMLDataBase表的各个数据库表,这样为后面导入数据提供准备(1)启动SQLServer2000的“SQL 查询分析器”,可以在企业管理器中选择“工具”菜单中的“SQL 查询分析器”。

将XML文件导入到Oracle数据库中的思路

将XML文件导入到Oracle数据库中的思路

将XML文件导入到Oracle数据库中的思路一、程序源码前台代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImportData.aspx.cs" Inherits="ImportData" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>将Xml文件导入到数据库</title></head><body><form id="form1" runat="server"><div><TABLE id="Table1" cellSpacing="3" cellPadding="3" bgColor="#99ccff" border="0"><TR><TD align="center" colSpan="2"><STRONG><FONT size="6">读取Xml,导入Oracle并显示</FONT></STRONG></TD></TR><TR><TD colSpan="2"><FONT size="2">读取Xml文件中的内容,并将其内容导入到Oracle数据库</FONT></TD></TR><TR><TD bgColor="#cccccc" style="width: 129px; height:27px;"><FONT size="2"><strong>请输入Xml文件名</strong></FONT></TD><TD bgColor="#cccccc" style="height: 27px"><asp:TextBox ID="textBoxXml" runat="server"Font-Names="Arial" Font-Size="X-Small"Width="500px"></asp:TextBox></TD></TR><TR><TD colSpan="2" style="height: 18px"><asp:Label id="Message" runat="server" Font-Bold="True" Font-Size="X-Small" ForeColor="Red"></asp:Label></TD></TR><TR><TD style="width: 129px; height: 17px"></TD><TD style="height: 17px"><asp:Button id="buttonSubmit" runat="server"Text="Submit" OnClick="buttonSubmit_Click"></asp:Button></TD></TR></TABLE><br /><strong><span style="color: #0066ff">测试从Xml文件是否能成功读取数据</span><br /><asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"><FooterStyle BackColor="#990000" Font-Bold="True"ForeColor="White" /><RowStyle BackColor="#FFFBD6" ForeColor="#333333" /><SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /><PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /><HeaderStyle BackColor="#990000" Font-Bold="True"ForeColor="White" /><AlternatingRowStyle BackColor="White" /></asp:GridView></strong></div>后台代码:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.OracleClient;using System.Data.OleDb;public partial class ImportData : System.Web.UI.Page{protected DataSet dataSetXml;protected DataTable dataTableXml;protected string tableName;protected string strConn =System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"] .ConnectionString;protected void Page_Load(object sender, EventArgs e){}protected void buttonSubmit_Click(object sender, EventArgs e){OracleConnection conn = new OracleConnection(strConn);conn.Open();Message.Text = "";dataSetXml = new DataSet();dataTableXml = new DataTable();try{dataSetXml.ReadXml(HttpContext.Current.Server.MapPath(textBoxXml.Te xt)); //装载XML文件到DataSetdataTableXml = dataSetXml.Tables[0]; //得到DataSet的第一个表tableName = textBoxXml.Text.Substring(0, textBoxXml.Text.Length - 4); //生成表名GridView1.DataSource = dataTableXml.DefaultView;GridView1.DataBind();}catch{Message.Text = "不能打开Xml文件或者是Xml文件格式错误";}if (dataTableXml.Rows.Count > 0) //检查是否有数据存在(ROWS){TableCheck(); //在数据库中建表TableInsert(); //添加XML数据到数据库}conn.Close();}#region 在数据库中建表private void TableCheck(){OracleConnection conn = new OracleConnection(strConn);try{conn.Open();int count = 0;DataTable schemaTable = conn.GetSchema("TABLES", new string[] { "SCOTT", tableName });string sqlCmd = "";if (schemaTable.Rows.Count == 1) //检查表是否存在,如果存在在DataTable 中将有一条记录// if (schemaTable.Rows.Count <1) 若这样写的话,程序运行无误,但只是导入了XML的表字段,没有导入数据{sqlCmd = "create table " + tableName + "(";// sqlCmd = "create table " + tableName + "(";for (int i = 0; i < dataTableXml.Columns.Count; i++){// 添加列text/string type 长度 100sqlCmd += dataTableXml.Columns[i].ColumnName.ToString() + " varchar2(100),";}sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ")";//删除最后一个“,”符号OracleCommand createcmd = new OracleCommand();createcmd.Connection = conn;mandText = sqlCmd;createcmd.ExecuteNonQuery();}}catch{Message.Text = "SQL命令或语句连接出问题";}finally{conn.Close();}}#endregion#region 添加XML数据到数据库private void TableInsert(){OracleConnection conn = new OracleConnection(strConn);try{conn.Open();// 遍历DataTable中的Rowsforeach (DataRow dr in dataTableXml.Rows){string sqlCmd = "Insert Into " + tableName + "(";// string sqlCmd = "Insert Into [ " + tableName + "] (";// 遍历Datatable的列for (int i = 0; i < dataTableXml.Columns.Count; i++){//添加列的字段名sqlCmd += dataTableXml.Columns[i].ColumnName.ToString() + ","; }sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ") Values(";// 遍历Datatable的列for (int i = 0; i < dataTableXml.Columns.Count; i++){//添加列值到rowsqlCmd += "'" + dr[i].ToString() + "',";}sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ")";OracleCommand cmd = new OracleCommand(sqlCmd, conn);cmd.ExecuteNonQuery();}Message.Text = "Xml文件中的数据成功加载到数据库中!";}catch{Message.Text = "在添加数据时产生了错误!";}finally{conn.Close();}}#endregion}二、XML文件导入oracle数据库思路(程序读解)1、将XML文件装载进DataSet,并得到第一个表,这个表就是我们要加入到数据库的DataTable;接下来,去除XML文件的扩展名,文件名字去掉扩展名将是我们数据库中使用的表名。

Oracle导入与导出(即备份与恢复)

Oracle导入与导出(即备份与恢复)
TABLESPACES 将传输的表空间列表
在没有警告的情况下成功终止导出。
IMP jwd/jwd@ps D:\DD\PHARMACY.DMP FULL=Y ****************
********************************
3. 导出工具exp非交互式命令行方式的例子
$exp scott/tiger tables=emp,dept file=/directory/scott.dmp grants=y
说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp
$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp
参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
filesize指定生成的二进制备份文件的最大字节数
(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
4. 命令参数说明
关键字 说明(默认)
---------------------------------------------------
USERID 用户名/口令
FULL 导出整个文件 (N)
Oracle支持三种类型的输出:

【VIP专享】Android通过jsp连接Oracle数据库_--_实例

【VIP专享】Android通过jsp连接Oracle数据库_--_实例

6.培养学生观察、思考、对比及分析综合的能力。过程与方法1.通过观察蚯蚓教的学实难验点,线培形养动观物察和能环力节和动实物验的能主力要;特2征.通。过教对学观方察法到与的教现学象手分段析观与察讨法论、,实对验线法形、动分物组和讨环论节法动教特学征准的备概多括媒,体继课续件培、养活分蚯析蚓、、归硬纳纸、板综、合平的面思玻维璃能、力镊。子情、感烧态杯度、价水值教观1和.通过学理解的蛔1虫.过观适1、察于程3观阅 六蛔寄.内列 察读 、虫生出 蚯材 让标容生常 蚓3根料 学本教活.见 身了 据: 生,师的2的 体解 、 问巩鸟 总看活形作线 的蛔 用 题固类 结雌动态业形虫 手 自练与 本雄学、三:动 状对 摸 学习人 节蛔生结4、、收物 和人 一 后同类 课虫活构请一 蚯集并 颜体 摸 回步关 重的动、学、 蚓鸟归 色的 蚯 答学系 点形教生生让 在类纳 。危 蚓 问习从 并状学理列学 平的线 蚯害 的 题四线人 归、意特出四生 面形 蚓以 体、形类 纳大图点常、五观 玻存动 的及 表鸟请动文 本小引以见引、察 璃现物 身预 ,类 3学物明 节有言及的、导巩蚯 上状的 体防 是之生和历 课什根蚯环怎学固蚓 和,主 是感 干所列环史 学么据蚓节二样生练引 牛鸟要 否染 燥以举节揭 到不上适动、区回习导 皮类特 分的 还分蚯动晓 的同节于物让分答。学 纸减征 节方 是布蚓物起 一,课穴并学蚯课生 上少。 ?法 湿广的教, 些体所居归在生蚓前回 运的4; 润泛益学鸟色生纳.靠物完的问答 动原蛔4的,处目类 习和活环近.在成前题蚯 的因虫了 ?以。标就 生体的节身其实端并蚓 快及寄解 触上知同 物表内特动体结验和总的 慢我生利蚯 摸适识人 学有容点物前构并后结生 一国在用蚓 蚯于与类 的什,的端中思端线活 样的人问的 蚓飞技有 基么引进主的的考?形环 吗十体题生行能着 本特出要几变以动境 ?大,活 节的1密 方征本“特节化下物.并 为珍会让习 近形理切 法。课生征有以问的引 什稀小学性 腹态解的 。2课物。什游题主.出 么鸟起结生和 面结蛔关观题体么戏:要蚯 ?类哪利明适 处构虫系察:的特的特蚓等些用确于 ,特适。蛔章形殊形征这资疾板,穴 是点于可虫我态结式。种料病书生居 光是寄的们结构,五典,?小物生 滑重生鸟内学构,学、型以5结的活 还要生类部习与.其习巩的爱如鸟结的 是原活生结了功颜消固线鸟何类构形 粗因的存构腔能色化练形护预适特态 糙之结的,肠相是系习动鸟防于点、 ?一构现你动适否统。物为蛔飞都结。和状认物应与的。主虫行是构课生却为和”其结题病的与、本理不蛔扁的他构以?特环生8特乐虫形观部特8小三征境理页点观的动位点组、梳相等这;,哪物教相,为引理适方些2鸟,育同师.单导知应面鸟掌类结了;?生位学识的你握日构解2互.办生。特认线益特了通动手观征识形减点它过,抄察;吗动少是们理生报蛔5?物,与的解.参一虫了它和有寄主蛔与份结解们环些生要虫其。构蚯都节已生特对中爱。蚓会动经活征人培鸟与飞物灭相。类养护人吗的绝适这造兴鸟类?主或应节成趣的的为要濒的课情关什特临?就危感系么征灭来害教;?;绝学,育,习使。我比学们它生可们理以更解做高养些等成什的良么两好。类卫动生物习。惯根的据重学要生意回义答;的3.情通况过,了给解出蚯课蚓课与题人。类回的答关:系线,形进动行物生和命环科节学动价环值节观动的物教一育、。根教据学蛔重虫点病1.引蛔出虫蛔适虫于这寄种生典生型活的线结形构动和物生。理二特、点设;置2.问蚯题蚓让的学生生活思习考性预和习适。于穴居生活的形态、结构、生理等方面的特征;3.线形动物和环节动物的主要特征。

Oracle数据库导入导出方法汇总

Oracle数据库导入导出方法汇总

Oracle数据库导入导出方法:1.使用命令行:数据导出:1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2.将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3.将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)4.将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面加上compress=y来实现。

数据的导入:1.将D:\daochu.dmp 中的数据导入TEST数据库中。

imp system/manager@TEST file=d:\daochu.dmpimp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y 就可以了。

2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)3.不同名用户之间的数据导入:imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmplog=c:\orabackup\hkbimp.log;2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。

finereport js调用oracle存储过程

finereport js调用oracle存储过程

finereport js调用oracle存储过程如何在FineReport中使用JavaScript调用Oracle存储过程FineReport是一款强大的企业级报表设计与展示平台,它与Oracle数据库的集成十分紧密,可以方便地进行数据的查询和处理。

当我们需要在FineReport中使用JavaScript调用Oracle存储过程时,可以按照下面的步骤进行操作。

步骤一:安装FineReport与配置Oracle数据库连接首先,确保您已经安装了FineReport并且已经配置好了与Oracle数据库的连接。

在FineReport中,我们可以通过在数据源配置中设置数据库的连接信息来实现与Oracle数据库的连接。

步骤二:创建存储过程在Oracle数据库中创建存储过程,以供JavaScript调用。

存储过程是在数据库中预定义的一组SQL语句,可以按照需要进行参数传递和数据处理。

例如,我们创建一个简单的存储过程来查询员工表中的数据:CREATE OR REPLACE PROCEDURE get_emp_data ISBEGINSELECT * FROM employees;END;步骤三:在FineReport中创建报表使用FineReport设计工具,创建一个报表用于展示存储过程返回的数据。

在报表设计中,我们可以使用FineReport提供的各种组件来展示数据,例如表格、图表等。

步骤四:使用JavaScript调用存储过程在FineReport中,我们可以使用JavaScript来编写与报表交互的逻辑。

下面是一个示例代码,演示如何使用JavaScript调用Oracle存储过程并将结果展示在报表中:function callProcedure() {var conn = database.openConn(); 打开数据库连接var stmt = conn.prepareStatement("{call get_emp_data}"); 准备调用存储过程的SQL语句var rs = stmt.executeQuery(); 执行查询语句while(rs.next()) {处理查询结果var empName = rs.getString("emp_name");var empAge = rs.getInt("emp_age");var empSalary = rs.getDouble("emp_salary");将结果展示在报表中report.setCellData("employee_table", empName, empAge, empSalary);}rs.close(); 关闭结果集stmt.close(); 关闭语句conn.close(); 关闭连接}在上述代码中,使用database.openConn()方法打开数据库连接,然后使用prepareStatement方法准备调用存储过程的SQL语句。

Oracle数据库导入导出命令总结

Oracle数据库导入导出命令总结

Oracle数据库导入导出命令总结Oracle数据库导入导出命令总结执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle中,安装目录\\ora9i\\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件是被包装后的类文件。

SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出:1将数据库zxcc完全导出,用户名kf密码zx导出到D:\\zxcc.dmp中expkf/zx@zxccfile=d:\\zxcc.dmpfull=yfull=y表示全库导出。

full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

2将数据库zxcc中kf用户与cc用户的表导出expkf/zx@zxccfile=d:\\zxcc_ur.dmpowner=(kf,cc)full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。

3将数据库zxcc中的表kf_operator、kf_role导出expkf/zx@zxccfile=d:\\zxcc_tb.dmptables=(kf_operator,kf_role)tables=xx表示备份相关表,不能同时和owner、full使用。

4将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出expkf/zx@zxccfile=d:\\zxcc_t.dmptables=(kf_operator)query=\\"whereop er_idlike"00%"\\"query主要是导出合适条件的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科技信息
计算机与网络
用 J S P 实现 XML 文件到 Ora cle 数据库的导入和导出
宁夏固原市医院信息科 周德军
[摘 要]现阶段比较成熟稳定的 JAVA 平台,具体实现技术为 JDK1.6.0+Tomcat+Hibernate+Oracle9i,以 JSP 为技术实现 XML 文件 到 Oracle 数据库的导入和导出。 [关键词]JAVA JDOM 存储过程 遍历
out.println(rs.getString("id")); out.println(rs.getString("status")); } }catch (Exception e) { out.println(e); }finally { try { rs.close(); st.close(); conn.close(); }catch (Exception e) { e.printStackTrace(); } } 3.3 编写对 Base64 编码 / 解码函数 public static String getBASE64(String s) { if (s == null) return null; return (new sun.misc.BASE64Encoder()).encode( s.getBytes() );
改其名为 classes12.jar 测试通过,可以访问数据库,环境配置完毕。 3.XML 文件到 Oracle 数据库导入与导出具体实现 3.1 建表 为了安全其见,在 Oralce9i 中新建用户 db2009,用 PL/SQL Developer
8.0 登录 Oracle 数据库,新建如下二个表: KsData(考生信息表)
nl2 := xmldom.getChildNodes(n); len2 := xmldom.getLength(nl2); for j in 0..len2- 1 loop
n := xmldom.item(nl2, j); strSQL := strSQL &brvbar &brvbar ', ''' &brvbar &brvbar xmldom. getNodeValue(xmldom.getFirstChild(n)) &brvbar &brvbar ''''; end loop; strSQL := strSQL &brvbar &brvbar ')'; dbms_output.put_line(strSQL); execute immediate(strSQL); end loop; commit; dbms_output.put_line(''); end readElements; begin p := xmlparser.newParser; xmlparser.setValidationMode(p, FALSE); xmlparser.setErrorLog (p, dir &brvbar &brvbar '' &brvbar &brvbar errfile); xmlparser.setBaseDir(p, dir); xmlparser.parse(p, dir &brvbar &brvbar '' &brvbar &brvbar inpfile); doc := xmlparser.getDocument(p); dbms_output.put_line(.'); String getFromBASE64(String s)/Base64 解码函数 readElements(doc); xmldom.freeDocument(doc); end xml2table; 导入 KsData 表 create or replace procedure xml1table(dir varchar2, inpfile varchar2, er-
strSQL := 'INSERT INTO 1 VALUES ('; n := xmldom.item(nl, i); if xmldom.getNodeName(n)='PERSON' then
nnm := xmldom.getAttributes(n); attn := xmldom.item(nnm, 0); strSQL := strSQL &brvbar &brvbar '''' &brvbar &brvbar xmldom. getNodeValue(attn) &brvbar &brvbar ''''; end if;
— 273 —
科技信息
计算机与网络
}
// 将 BASE64 编码的字符串 s 进行解码 public static String getFromBASE64(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b); }catch (Exception e) { return null; } } 3.4 遍历 XML 文件,导入 Oracle 数据库中 导入 PackageHead 表 create or replace procedure xml2table(dir varchar2, inpfile varchar2, errfile varchar2) is p xmlparser.parser; procedure readElements (doc xmldom.DOMDocument) is nl xmldom. DOMNodeList; len number; n xmldom.DOMNode; attn xmldom.DOMNode; nnm xmldom.DOMNamedNodeMap; nl2 xmldom.DOMNodeList; len2 number; strSQL varchar2(1000); begin nl := xmldom.getElementsByTagName(doc, ’PackageHead’); len := xmldom.getLength(nl); for i in 0..len- 1 loop
Class.forName(driver); conn = DriverManager .getConnection(url,"scott","sa"); st = conn.createStatement(); rs = st.executeQuery("select * from contents "); while (rs.next()) {
Packagehead(考点信息表)
3.2 数据源设置 String driver = "oracle.jdbc.driver.OracleDriver" ;
String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; Connection conn = null; Statement st = null; ResultSet rs = null; 多实现平台,我选择现阶段比较成熟稳定的 JAVA 平台, 具体实现技术为 JDK1.6.0+Tomcat+Hibernate+Oracle9i,在 Java 里面解析 时又有种多解析器,W3C,JDOM,DOM4J,SAX 眼花缭乱,在网上搜到推 荐用 JDOM 于是就用了它。 2.各种技术介绍及运行平台的搭建 2.1 JDOM 介绍 我们知道 DOM 是用于与平台和语言无关的方式表示 XML 文档的 官方 W3C 标准,利用 DOM 和 SAX API 可以解析和处理 XML 文档。这 里我们介绍的 JDOM 是基于树操作的纯 JAVA API,应该说它提供的是 一套用于解析、创建、处理和实现 XML 的解决方案。这些 API 比 DOM 和 SAX API 提供的方法更为直观,对于有 JAVA 经验的程序员将会发 现 JDOM 非常容易掌握。JDOM 处理 XML 的方式比 DOM 容易的多,并 且它的功能比使用 SAX 更加强大。 JDOM 的内部逻辑结构基本上与 DOM 的相同,比如具有 Document、Element、Comment 等文档节点类型,其中每一个 JDOM 文档必须 有一个 Document 节点,并且为节点树的根节点。该根节点可以有子节 点或者叶子节点如 Comment、Text 等。JDOM 文档中的每一个节点类型 均对应格式良好的 XML 文当中的没一个元素。这也就为我们利用 JDOM 转换数据库到 XML 文档提供了可操作的依据。 JDOM 的优点: 由 JDOM 的文档声明我们将会很明显的看出应用 JDOM 的优势所 在。JDOM 文档声明如下“JDOM 引用了 20/80 原则,即使用 20%的精力 解决 80%的 JAVA/XML 问题”。 第一点:JDOM 是用 JAVA 开发并为 JAVA 提供服务的,它沿用了 JAVA 代码的规范和类库; 第二点:在众多编程语言中,JAVA 是使用 XML 的优秀平台,XML 又是 JAVA 应用的优秀数据表示方法。JDOM API 是纯 JAVA API 对于 JAVA 开发人员来说更容易上手; 第三点:JDOM API 比 DOM 所提供的方法更为直观,同时简化了与 XML 的交互。比使用 DOM 更快。 org.jdom 是用于 JAVA API 操作的 JDOM 工具包。 在 org.jdom 中,提供了 Document、Element 、Comment 、DocType、Attribute、Text 等存 JAVA 类,这些类均是访问和操作 JDOM 文档所必须 的。我们可以利用这些类创建、遍历、修改 JDOM 文档。 2.2 环境配置 第一步:安装 JDK1.6.0,在系统变量中找到 ClassPath 并加入下面内 容:D:\jdk1.6.0\LIB\dt.JAR;D:\ D:\jdk1.6.0\LIB\TOOLS.JAR; D:\jdk1.6.0\BIN; 第二步:再在系统变量中找到 Path 并加入下面内容:D:\jdk1.6.0 D:\jdk1.6.0\bin;,再在系统变量中找到 JAVA_HOME 并加入下面内 容:D:\jdk1.6.0 第三步:安装 TOMCAT6.0, 虚拟主机: 默认主目录为:E:\Tomcat6. 0\webapps ;可以在 E:\Tomcat6.0\conf 目录下打开 server.xml 文件,修改其 appBase 值便行: <Host appBase="webapps" name="localhost"> <Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_log." timestamp="true"/> </Host> <Host appBase="E:/mhgWeb" name="localhost"> <Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_log." timestamp="true"/> </Host>)、 第四步:支持 oracle 数据库,把 oracle 安装目录下的 \ora9i\jdbc\lib\ classes12.zip 文件 copy 至 Tomcat 6.0\common\lib\classes12.zip 目录下,并
相关文档
最新文档