读XML并且写入到Oracal库中

读XML并且写入到Oracal库中
/*
 *创建日期:2006-8-4  17:57:21
 *创建作者:李长有
 
*/

package  lcy.jdom;

import  java.io.FileInputStream;
import  java.sql.Connection;
import  java.sql.DriverManager;
import  java.sql.Statement;
import  java.util.List;

import  org.jdom.Document;
import  org.jdom.Element;
import  org.jdom.input.SAXBuilder;
/**
 * 
 * 插入数据库之前,最好先删除记录,以免重复插入
 *
 
*/

public   class  XmlInfor  {
    
// Xml的节点信息from_view_id,nacase_from_outcome,nacase_to_view_id
    private String from_view_id;

    
private String nacase_from_outcome;

    
private String nacase_to_view_id;

    
public String getNacase_from_outcome() {
        
return nacase_from_outcome;
    }


    
public void setNacase_from_outcome(String nacase_from_outcome) {
        
this.nacase_from_outcome = nacase_from_outcome;
    }


    
public String getNacase_to_view_id() {
        
return nacase_to_view_id;
    }


    
public void setNacase_to_view_id(String nacase_to_view_id) {
        
this.nacase_to_view_id = nacase_to_view_id;
    }


    
public String getFrom_view_id() {
        
return from_view_id;
    }


    
public void setFrom_view_id(String from_view_id) {
        
this.from_view_id = from_view_id;
    }


    
// 循环读入读XML信息
    public void LoadXML(String path) throws Exception {

        
// 准备插入Oracle数据库中
        String driver = "oracle.jdbc.driver.OracleDriver";
        Class.forName(driver);
        String url 
= "jdbc:oracle:thin:@172.16.10.200:1521:test2";// ????
        Connection con = DriverManager.getConnection(url, "system""abc");// 2
        
// 开始读制定路径的XML文件
        FileInputStream fi = null;
        
try {

            fi 
= new FileInputStream(path);
            
// 利用SAX方式读
            SAXBuilder sb = new SAXBuilder();
            Document doc 
= sb.build(fi);
            
// 得到根元素
            Element root = doc.getRootElement();

            
// 得到根元素所有子元素的集合
            List navigation_rules = root.getChildren();

            Element navigation_rule 
= null;
            Element navigation_case 
= null;
            XmlInfor xml 
= null;

            
for (int i = 0; i < navigation_rules.size(); i++{
                
// 每循环读入一条记录,就插入到数据库中
                xml = new XmlInfor();

                navigation_rule 
= (Element) navigation_rules.get(i);
                xml.setFrom_view_id(navigation_rule.getChild(
"from-view-id")
                        .getText());

                List navigation_cases 
= navigation_rule
                        .getChildren(
"navigation-case");

                
for (int j = 0; j < navigation_cases.size(); j++{

                    navigation_case 
= (Element) navigation_cases.get(j);

                    xml.setNacase_from_outcome(navigation_case.getChild(
                            
"from-outcome").getText());

                    xml.setNacase_to_view_id(navigation_case.getChild(
                            
"to-view-id").getText());

                    String qry 
= "INSERT INTO LIUCHENG1(wjlx,bz,xm,tj)"
                            
+ " VALUES" + " ('" + "fangjia" + "'" + " , '"
                            
+ xml.getFrom_view_id().substring(12+ "', "
                            
+ " '" + xml.getNacase_from_outcome() + "'" + ""
                            
+ "'" + xml.getNacase_to_view_id().substring(12)
                            
+ "')";

                    Statement stmt 
= con.createStatement();
                    stmt.executeUpdate(qry);

                    stmt.close();
                    System.out.println(
"一条信息插入数据库成功");
                }


            }

        }
 catch (Exception e) {
            System.err.println(e 
+ "error");
        }
 finally {
            
try {
                fi.close();
                con.close();
            }
 catch (Exception e) {
                e.printStackTrace();
            }

        }


    }


    
public static void main(String[] ars) {

        
try {
            String path 
= "D:/faces-config1.xml";
            XmlInfor xml 
= new XmlInfor();
            xml.LoadXML(path);

        }
 catch (Exception ea) {
            ea.printStackTrace();
        }

    }


}

 

需要提供jDom.jar包,Oracal的jdbc包 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值