java实现将xml数据插入到oracle数据库的表中

1、DbUtil

package xml2table;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class DbUtil {

/*

* 功能:编写一个静态方法用于与数据库建立连接 输入参数:无 返回值:数据库连接对象

*/

public static Connection getConnection() {

// 定义一个连接对象

Connection conn = null;

// 定义连接数据库的URL资源

String url = "jdbc:oracle:thin:@10.20.56.52:1521:orcl";

// 定义连接数据库的用户名称与密码

String username = "crm";

String password = "crm";

// 加载数据库连接驱动

String className = "oracle.jdbc.driver.OracleDriver";

try {

Class.forName(className);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 获取数据库的连接对象

try {

conn = DriverManager.getConnection(url, username, password);

System.out.println("数据库连接建立成功...");

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 返回连接对象

return conn;

}

public static  void close(Connection c)

{

if(c!=null)

{

try {

c.close();

} catch (Throwable e) {

e.printStackTrace();

}

}

}

public static  void close(PreparedStatement c)

{

if(c!=null)

{

try {

c.close();

} catch (Throwable e) {

e.printStackTrace();

}

}

}

}

2、xml2table

package xml2table;

import java.io.File;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.util.Iterator;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.Node;

import org.dom4j.io.SAXReader;

public class xml2table {

public static void main(String[] args){

//插入数据的sql语句

//        String sql="insert into bank_insurance(flag,descrip,ContNo,ProposalPrtNo,Prem,PremText,Amnt,AmntText,AgentCode,AgentCertNo,AgentName,AgentGrpCode,AgentGrpName,AgentCom,AgentComName,ComCode,ComLocation,ComName,ComZipCode,ComPhone,ValidDate,

// ExpireDate,

// PolicyValue,

// AutoTransferAccNo,

// AppntGetAccNo,

// AppntProv,

// AppntCity,

// AppntCounty,

// AppntNativeplace,

// AppntAddress,

// AppntCustomerNo,

// AppntName,

// AppntSex,

// AppntBirthday,

// AppntIDType,

// AppntIDNo,

// AppntIdEfDate,

// AppntIdExpDate,

// AppntJobType,

// AppntJobCode,

// AppntJobName,

// AppntNationality,

// AppntStature,

// AppntWeight,

// AppntMaritalStatus,

// AppntZipCode,

// AppntMobile,

// AppntPhone,

// AppntEmail,

// AppntRelaToInsured,

// AppntEstSalary,

// AppntFamilyEstSalary,

// AppntLiveZone,

// InsuredGetAccNo,

// InsuredProv,

// InsuredCity,

// InsuredCounty,

// InsuredNativeplace,

// InsuredAddress,

// InsuredName,

// InsuredSex,

// InsuredBirthday,

// InsuredIDType,

// InsuredIDNo,

// InsuredJobType,

// InsuredJobCode,

// InsuredJobName,

// InsuredStature,

// InsuredNationality,

// InsuredWeight,

// InsuredMaritalStatus,

// InsuredZipCode,

// InsuredMobile,

// InsuredPhone,

// InsuredEmail,

// InsuredEsSalary,

// Bnf1Type,

// Bnf1Grade,

// Bnf1Name,

// Bnf1Birthday,

// Bnf1Sex,

// Bnf1IDType,

// Bnf1IDNo,

// Bnf1RelaToInsured,

// Bnf1Lot,

// Bnf2Type,

// Bnf2Grade,

// Bnf2Name,

// Bnf2Birthday,

// Bnf2Sex,

// Bnf2IDType,

// Bnf2IDNo,

// Bnf2RelaToInsured,

// Bnf2Lot,

// RiskCode1,

// RiskName1,

// MainRiskCode1,

// PolApplyDate1,

// SignDate1,

// CValiDate1,

// InsuEndDate1,

// Amnt1,

// Prem1,

// Mult1,

// PayIntv1,

// PayMode1,

// InsuYearFlag1,

// InsuYear1,

// InsuYearFlagA1,

// InsuYearA1,

// Years1,

// PayEndYearFlag1,

// PayEndYear1,

// PayEndDate1,

// CostIntv1,

// CostDate1,

// PayToDate1,

// GetYearFlag1,

// GetStartDate1,

// GetYear1,

// GetIntv1,

// GetBaCode1,

// GetBankAccNo1,

// GetAccName1,

// AutoPayFlag1,

// BonusGetMode1,

// SubFlag1,

// FullBonusGetMode1,

// Account1,

// EndYear0,

// Cash0,

// EndYear1,

// Cash1,

// EndYear2,

// Cash2,

// EndYear3,

// Cash3,

// EndYear4,

// Cash4,

// EndYear5,

// Cash5,

// EndYear6,

// Cash6,

// EndYear7,

// Cash7,

// EndYear8,

// Cash8,

// EndYear9,

// Cash9,

// EndYear10,

// Cash10,

// BonusValues1 ,

// SpecContent1,

// RiskCode2,

// RiskName2,

// MainRiskCode2,

// PolApplyDate2,

// SignDate2,

// CValiDate2,

// InsuEndDate2,

// Amnt2,

// Prem2,

// Mult2,

// PayIntv2,

// PayMode2,

// InsuYearFlag2,

// InsuYear2,

// InsuYearFlagA2,

// InsuYearA2,

// Years2,

// PayEndYearFlag2,

// PayEndYear2,

// PayEndDate2,

// CostIntv2,

// CostDate2,

// PayToDate2,

// GetYearFlag2,

// GetStartDate2,

// GetYear2,

// GetIntv2,

// GetBankCode2,

// GetBankAccNo2,

// GetAccName2,

// AutoPayFlag2,

// BonusGetMode2,

// SubFlag2,

// FullBonusGetMode2,

// Account2,

// BonusValues2,

// SpecContent2) values (?,?,?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,

// ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

// String sql="insert into test1(flag, descrip, ContNo, ProposalPrtNo) values (?, ?, ?, ?)";

// String sql="insert into test01(flag, descrip)"

// +"values (?,?)";

String sql="insert into test02(flag, descrip,ContNo,ProposalPrtNo,Prem,PremText,Amnt,AmntText,AgentCode,AgentCertNo,AgentName,AgentGrpCode,AgentGrpName,AgentCom,AgentComName,ComCode,ComLocation,ComName,ComZipCode,ComPhone,ContState,ValidDate,ExpireDate,PolicyValue,AutoTransferAccNo)"

+"values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

Connection conn=null;

PreparedStatement pstmt=null;

try{

conn=DbUtil.getConnection();

pstmt=conn.prepareStatement(sql);

//读取xml文件

Document doc=new SAXReader().read(new File("E:/xml2table/source.XML"));

//选择xml文件的节点

List itemList=doc.selectNodes("TranData/Head");

List itemList1=doc.selectNodes("TranData/Body");

//遍历读出的xml中的节点

//            for(Iterator iter=itemList.iterator();iter.hasNext();){

Element el=(Element)itemList.iterator().next();

Element el1=(Element)itemList1.iterator().next();

//读取节点内容

String Flag=el.elementText("Flag");

String Desc= el.elementText("Desc");

String ContNo = el1.elementText("ContNo");

String ProposalPrtNo = el1.elementText("ProposalPrtNo");

String Prem = el1.elementText("Prem");

String PremText = el1.elementText("PremText");

String Amnt = el1.elementText("Amnt");

String AmntText = el1.elementText("AmntText");

String AgentCode = el1.elementText("AgentCode");

String AgentCertNo = el1.elementText("AgentCertNo");

String AgentName = el1.elementText("AgentName");

String AgentGrpCode = el1.elementText("AgentGrpCode");

String AgentGrpName = el1.elementText("AgentGrpName");

String AgentCom = el1.elementText("AgentCom");

String AgentComName = el1.elementText("AgentComName");

String ComCode = el1.elementText("ComCode");

String ComLocation = el1.elementText("ComLocation");

String ComName = el1.elementText("ComName");

String ComZipCode = el1.elementText("ComZipCode");

String ComPhone = el1.elementText("ComPhone");

String ContState = el1.elementText("ContState");

String ValidDate = el1.elementText("ValidDate");

String ExpireDate = el1.elementText("ExpireDate");

String PolicyValue = el1.elementText("PolicyValue");

String AutoTransferAccNo = el1.elementText("AutoTransferAccNo");

//String nombre = el.elementText("NOMBRE");

//遍历TURNOS节点中的内容

//                List turnosList = el.elements("TURNOS");

//                StringBuffer sbString=new StringBuffer();

//                for(Iterator iter1=turnosList.iterator();iter1.hasNext();){

//                    Element turnosElt=(Element)iter1.next();

//                    String lu = turnosElt.elementText("LU");

//                    String ma = turnosElt.elementText("MA");

//                    String mi = turnosElt.elementText("MI");

//                    String ju = turnosElt.elementText("JU");

//                    String vi = turnosElt.elementText("VI");

//                    String sa = turnosElt.elementText("SA");

//                    String doo = turnosElt.elementText("DO");

//                    sbString.append(lu + "," + ma + "," + mi + "," + ju + "," + vi + "," + sa + "," + doo);

//                }

//为sql语句赋值

pstmt.setString(1, Flag);

pstmt.setString(2, Desc);

pstmt.setString(3, ContNo);

pstmt.setString(4, ProposalPrtNo);

pstmt.setString(5, Prem);

pstmt.setString(6, PremText);

pstmt.setString(7, Amnt);

pstmt.setString(8, AmntText);

pstmt.setString(9, AgentCode);

pstmt.setString(10, AgentCertNo);

pstmt.setString(11, AgentName);

pstmt.setString(12, AgentGrpCode);

pstmt.setString(13, AgentGrpName);

pstmt.setString(14, AgentCom);

pstmt.setString(15, AgentComName);

pstmt.setString(16, ComCode);

pstmt.setString(17, ComLocation);

pstmt.setString(18, ComName);

pstmt.setString(19, ComZipCode);

pstmt.setString(20, ComPhone);

pstmt.setString(21, ContState);

pstmt.setString(22, ValidDate);

pstmt.setString(23, ExpireDate);

pstmt.setString(24,PolicyValue);

pstmt.setString(25,AutoTransferAccNo);

pstmt.addBatch();

//            }

pstmt.executeBatch();

System.out.print("将XML导入数据库成功");

}catch(Exception e){

e.printStackTrace();

}finally{

DbUtil.close(pstmt);

DbUtil.close(conn);

}

}

}

时间: 2024-10-25 18:07:47

java实现将xml数据插入到oracle数据库的表中的相关文章

在oracle中怎么把一张表的数据插入到另一张表中

把table2表的数据插入到table1中 insert   into   table1   select   *   from   table2

存储过程查找表中的内容去匹配另一张表中对应的数据,将该表查找到的数据插入到另一张表中

USE [数据库]GO SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE proc [dbo].[表名]as begin declare @Keyword varchar(max),@strs varchar(max) --申明游标 declare MTF_Cursor CURSOR FOR select distinct Keyword from Keywords where Flag=4 --打开游标 open MTF_Cursor fe

oracle 数据库 , 表中字段顺序修改

1.首先需要sys或者system权限操作 2.查询需要更改的表的ID select object_id from all_objects where owner = '用户名' and object_name = 'tableName';  注:表名需要大写 3.通过ID查询出该表所有字段的顺序 select obj# , col# , name from sys.col$ where obj#  = '表ID' order by col# 4.修改顺序:更改目标行 , 更改受影响的行 upd

oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别

create table  as select * from和insert into select from两种表复制语句区别 [sql] view plain copy create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插

Java代码实现excel数据导入到Oracle

1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)2.代码: Java代码   import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.Bi

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

c#如何将dataset中的数据批量导入oracle数据库

不要写insert语句,因为数据库字段太多了,有什么简单点的效率高的方法吗 public void MultiInsertData(DataSet ds) { string connt = "Oracle的连接字符串"; string sql = "select id,name,- from tablename";必须与ds中的一致 DataTable dt = ds.Defaults[0]; OracleConnection conn = new OracleCo

SQL_如何实现用户A的表A数据插入到用户B的表B中?

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39901995 *******

python 读取SQLServer数据插入到MongoDB数据库中

# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, DESCENDINGfrom pymongo import MongoClientimport binascii '''连接mongoDB数据库'''client = MongoClient('10.20.4.79', 27017)#client = MongoClient('10.20.66.10