新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Oracle, SQL Server与XML,XML在数据挖掘中的应用, PMML.
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - 高级XML应用『 XML 与 数据库 』 → [求助]关于使用jdbc将xml数据导入到数据库中的源代码,请版主帮忙! 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11734 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]关于使用jdbc将xml数据导入到数据库中的源代码,请版主帮忙! 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     cakefly 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:18
      积分:123
      门派:XML.ORG.CN
      注册:2005/9/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给cakefly发送一个短消息 把cakefly加入好友 查看cakefly的个人资料 搜索cakefly在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看cakefly的博客楼主
    发贴心情 [求助]关于使用jdbc将xml数据导入到数据库中的源代码,请版主帮忙!

    自从找到了此网站,我对xml的认识有了全方面的提高。现在课题进行到关键时候,由于没有经验,需要“使用jdbc实现xml数据与关系数据库之间的数据相互转换的源代码”。但是我们网站上的资料库里相关的资料 即不能浏览 也不能下载!!很急人啊,请版主和各位大大帮忙,先拜了!!

    They brag most who can do least。^_^


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    女友几时有,把酒问青天。 不知告别单身,要等多少年? 我欲出家而去,又恐思念美女,空门不胜寒。 起舞影为伴,寂寞在人间。 追女孩,妄相思,夜难眠。 不应有恨,何时才能把梦圆。 男有高矮胖瘦,女有黑白美丑,此事古难全。 但愿人长久,光棍不再有

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/10 22:49:00
     
     fishlight 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:6
      积分:84
      门派:XML.ORG.CN
      注册:2005/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fishlight发送一个短消息 把fishlight加入好友 查看fishlight的个人资料 搜索fishlight在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fishlight的博客2
    发贴心情 
    没人回答啊,我也很关注
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/2 11:06:00
     
     binrihui 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:61
      门派:XML.ORG.CN
      注册:2009/2/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给binrihui发送一个短消息 把binrihui加入好友 查看binrihui的个人资料 搜索binrihui在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看binrihui的博客3
    发贴心情 
    /**
    * @(#)CreateXml.java
    *
    * @author binrihui
    * @version 1.00 2009/1/19
    */

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.OutputStreamWriter;
    import java.sql.ResultSet;
    import java.util.List;
    import java.util.Iterator;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    import org.saxpath.*;

    public class CreateXml {

     private String username;
     private String password;
     private String tablename;
     private String filepath ="E:\\Employees2.xml";
     private DB db;
     private ResultSet result;
     private boolean isconnect=false;
     public boolean connect() {
      db = new DB(databasename,username,password);
      isconnect=db.Isconnect();
      if(isconnect){
      // String sql = "select empno,ename,job,mgr,to_char(hiredate,'mm-dd-yyyy') hiredate,sal,comm,deptno from "+tablename;
      String sql = "select * from "+tablename;
      result =db.openSql(sql);
      db.getColumn();
      }
     
      
      return  isconnect;
     }
     
     public void SqlQueryResult(){
      try{
            while(result.next()){
                System.out.println(result.getInt("EMPNO")+" "+result.getString("EName")+"  "+result.getString("Job")+
                 "  "+result.getString("MGR")+"  "+result.getString("HireDate")+"  "+result.getString("SAl")+
                 "  "+result.getString("COMM"));
                 
                
                }
            }catch (Exception e){
                
                }
     }
     
     
     
     
     public  void create(){
      String sql = "select * from "+tablename;
      result =db.openSql(sql);
       System.out.println("result = stmt.executeQuery(sql);");
      int column = db.getColumn();
      System.out.println(column);
      String columnName[]=db.getColumnNmae();
      for(int j=0;j<column;j++){
       System.out.println(columnName[j]);
      }
      
      
            Element columnElement[] = new Element[column];  
      Document xmldocument = DocumentHelper.createDocument();
      OutputFormat format =OutputFormat.createPrettyPrint();
      format.setEncoding("GB2312");
      Element Employees = xmldocument.addElement("Employees");
      //Element bookelement =bookselement.addElement("book");

      try{
       //System.out.println(result.next());
      while(result.next()){
          Element Employee  = Employees.addElement("Employee");
       System.out.println("进到这");
       for(int i=0;i<column;i++){
          System.out.println("加一个");
       columnElement[i]=Employee.addElement(columnName[i]);
       columnElement[i].setText(result.getString(i+1));
       }
       }
      }catch(Exception e) {
       e.printStackTrace();
       
      }
      try{
       filepath = "E:\\Employees.xml";
       File f = new File("E:\\Employees.xml") ;
       XMLWriter write =new XMLWriter(new FileWriter(f),format) ;
       write.write(xmldocument);
       
       write.close();
       
      }catch(Exception e){
       e.printStackTrace();
       System.out.println("出错");
      }
     }
       
     
     //将Xml文档数据插入到oracle中的employees2表中。
     public void insertToDatabase(){
      int COLUMN =db.getColumn();
      String columnname[] =db.getColumnNmae();
      try{
        filepath = "E:\\Employees.xml";
       SAXReader saxreader = new SAXReader();
       Document xmldocument =saxreader.read(new File(filepath));
       //System.out.print(xmldocument);
       Element bootelement =xmldocument.getRootElement();
       List list[] =new List[COLUMN];
          Iterator interator[] =new Iterator[COLUMN];
           System.out.println(COLUMN);
       for(int i=0;i<COLUMN;i++){
        
       //String elementpath =tablename+"s/"+tablename+"/"+columnname[i];
          String elementpath ="Employees"+"/"+"Employee"+"/"+columnname[i];  
          //String elementpath ="Employees"+"/"+columnname[i];  
        //elementpath 有问题。
        //String elementpath ="Employees"+"/"+columnname[i];
        //System.out.println(elementpath);
        list[i] =xmldocument.selectNodes(elementpath);
       // System.out.println(list[i].isEmpty());
           interator[i] =list[i].iterator();
           //System.out.println(COLUMN);
       }
       System.out.println(interator[0].hasNext());
       while(interator[0].hasNext()){
         //System.out.println(COLUMN);
        Element temp[] =new Element[interator.length] ;
        for(int i=0;i<interator.length;i++){
        
          temp[i]=(Element)interator[i].next();
          //System.out.println(COLUMN);
        }
        // System.out.println(COLUMN);
        StringBuffer sqlstr =new StringBuffer("INSERT INTO "+"employees2"+" values(");
        sqlstr.append(temp[0].getText()) ;
           String ss="";
        for(int j=1;j<interator.length;j++){
        
        if(j==4){
                ss=temp[j].getText().trim();
                  ss=ss.substring(0,10);
                sqlstr.append(","+"TO_DATE('"+ss+"',"+"'yyyy-mm-dd'"+")");
        }
         
        else
            sqlstr.append(",'"+temp[j].getText()+"'");
        }
        sqlstr.append(")");
        
        System.out.println(sqlstr);
        db.insert(sqlstr.toString());
      
       }
       
      }catch(Exception e){
       e.printStackTrace();
      }
      
      
     }
     public void saveXmlFile(String str){
      try{
             File f =new File(filepath);
             FileOutputStream fileoutputstream =new FileOutputStream(f);
             OutputStreamWriter streamwriter =new OutputStreamWriter(fileoutputstream);
             BufferedWriter bufferedwriter = new BufferedWriter(streamwriter);
             System.out.println(str);
             bufferedwriter.write(str);
             bufferedwriter.flush();
             bufferedwriter.close();
             streamwriter.close();
             fileoutputstream.close();
             
      
      }catch(Exception e){
       e.printStackTrace();
      }
     }
     public void showToWindow(XmlEditWindow xmledit) {
      
      try{
       
       FileInputStream fileinputstream = new FileInputStream(new File(filepath));
       int len ;
          byte buf[]=new byte[1024];//write.createWriter(print,"GB2312");
          while((len =fileinputstream.read(buf,0,1024))!=-1){
           String str =new String(buf,0,len);
           xmledit.addText(str);
           
          }
       
      }catch(Exception e) {
       e.printStackTrace() ;
      }
     }
     public void setFilePath(String path){
      this.filepath = path;
     }
     public String getFilePath() {
      return filepath;
     }
     private String databasename;
     /**
      * @param databasename 要设置的 databasename。
      */
     public void setDatabasename(String databasename) {
      this.databasename = databasename;
     }
     /**
      * @param password 要设置的 password。
      */
     public void setPassword(String password) {
      this.password = password;
     }
     /**
      * @param tablename 要设置的 tablename。
      */
     public void setTablename(String tablename) {
      this.tablename = tablename;
     }
     /**
      * @param username 要设置的 username。
      */
     public void setUsername(String username) {
      this.username = username;
     }
     public DB getDB(){
      
      return db;
     }

       
    }
    class Tes {
    public static void main(String args []){
    CreateXml T= new CreateXml();
    T.setDatabasename("orcl");
    T.setUsername("system");
    T.setPassword("oracle");
    T.setTablename("EMPloyees");
    T.connect();
    //T.SqlQueryResult();
    //为什么创建了xml文档后,就不能将xml文档导入Oracle中的employees2表。已解决
    T.create();
    T.insertToDatabase();
    T.create();
    }
     
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/16 16:04:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 数据库 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/30 10:13:43

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms