大數(shù)據(jù)存儲(chǔ)問(wèn)題的代碼(初級(jí)),沒(méi)有進(jìn)行優(yōu)化的。

          代碼在前天做好了,但是一直都沒(méi)時(shí)間去修改,
          偷下懶吧。
          呵呵
          放出來(lái)只是給大家一點(diǎn)參考。
          我用的表示temp。中間有三個(gè)屬性time(存儲(chǔ)系統(tǒng)當(dāng)前時(shí)間),title(文件名稱),context(文件中文本內(nèi)容),
          其中測(cè)試的是在E盤下的test文件夾下的文件,(文件采用問(wèn)txt的)。
          oracle是10 XE版本的。驅(qū)動(dòng)是class12.
          下面就是代碼了。

          package PreparedTest;

          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.File;
          import java.io.FileNotFoundException;
          import java.io.FileReader;
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.Statement;
          import java.text.SimpleDateFormat;
          import java.util.Date;

          public class lsat {
           static String driverClass = "oracle.jdbc.driver.OracleDriver";
           static String URL = "jdbc:oracle:thin:@localhost:1521:XE";
           static String USERNAME = "system";
           static String PASSWORD = "duduli";
           static Connection con = null;
           static Statement stmt = null;
           static ResultSet rs = null;
           static String filePathName = null;
           static String fileName = null;
           
           public static String  getFileName(File file){  
                  String filename = "";  
                  if (file != null){  
                          filename = file.getName();  
                          int i = filename.lastIndexOf('.');  
                          if (i > 0 && i < filename.length()-1){  
                                  return filename.substring(0,i);  
                          }  
                  }  
                  return   filename;  
          }
           
           
              public static void clobInsert(String filepath)throws Exception {
               try {
                File file = new File(filepath);
                if (file.isDirectory()) {
                            //System.out.println("文件夾");
                 String[] filelist = file.list();
                 for (int i = 0; i < filelist.length; i++) {
                     
               Date dateNow = new Date();     // 取得當(dāng)前時(shí)間
               SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh"); // 對(duì)時(shí)間進(jìn)行格式化
               String dateNowStr = dateFormat.format(dateNow);
               System.out.println(dateNowStr);
               
                  File readfile = new File(filepath + "\\" + filelist[i]);
                     //文件掃描
                  filePathName = readfile.getAbsolutePath();
                  if (!readfile.isDirectory()) {
                   fileName = getFileName(readfile);
                   System.out.print("一個(gè)文件!\t");
                      System.out.println("文件名:"+fileName);
                   System.out.println("文件地址"+filePathName);

                  } else if (readfile.isDirectory()) {
                   fileName = getFileName(readfile);
                      System.out.print("一個(gè)文件夾!\t");
                      System.out.println("文件夾名:"+fileName);
                   System.out.println("文件夾地址:"+filePathName);
                   clobInsert(filepath + "\\" + filelist[i]);
                   }
                  
                        boolean defaultCommit = con.getAutoCommit();
                         con.setAutoCommit(false);
                         try {

                             /* 插入一個(gè)空的CLOB對(duì)象 */

                    
                    
                             stmt.executeUpdate("INSERT INTO temp VALUES ('"+dateNowStr+"', '"+filePathName+"',EMPTY_CLOB())");
                             /* 查詢此CLOB對(duì)象并鎖定 */
                             ResultSet rs = stmt.executeQuery("SELECT context FROM temp WHERE title='"+filePathName+"' FOR UPDATE");
                 
                             while (rs.next()) {
                                 /* 取出此CLOB對(duì)象 */
                                 oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("context");
                                 /* 向CLOB對(duì)象中寫入數(shù)據(jù) */
                                 BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
                                 BufferedReader in = new BufferedReader(new FileReader(fileName));
                                 int c;
                                 while ((c=in.read())!=-1) {
                                     out.write(c);
                                 }
                                 in.close();
                                 out.close();
                             }
                             /* 正式提交 */
                             con.commit();
                         } catch (Exception ex) {
                             /* 出錯(cuò)回滾 */
                             con.rollback();
                         }
                         /* 恢復(fù)原提交狀態(tài) */
                         con.setAutoCommit(defaultCommit);
                  }
                 }
                
                 /* 設(shè)定不自動(dòng)提交 */
           
            }
                  catch (FileNotFoundException e) {
                  System.out.println("readfile() Exception:" + e.getMessage());
                 }
                }
              public static void main(String[] args) throws Exception
              {
                  /* 裝載驅(qū)動(dòng),建立數(shù)據(jù)庫(kù)連接 */
                  Class.forName(driverClass);
                  con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
                  stmt = con.createStatement();
                 
             
                 clobInsert("e:/test");

            try {
             if (rs != null) {
              rs.close();
             }
             if (stmt != null) {
              stmt.close();
             }
             if (con != null) {
              con.close();
             }
            } catch (Exception e) {
            }
              }
          }



          寫得很凌亂,大家就勉強(qiáng)看看吧。

          posted on 2008-09-15 21:15 duduli 閱讀(1567) 評(píng)論(2)  編輯  收藏 所屬分類: java

          評(píng)論

          # re: 大數(shù)據(jù)存儲(chǔ)問(wèn)題的代碼(初級(jí)),沒(méi)有進(jìn)行優(yōu)化的。 2008-09-17 21:26 44you

          我google了下,不是oracle.sql.CLOB ,提示,您是不是要找 oracle.sql.BLOB  回復(fù)  更多評(píng)論   

          # re: 大數(shù)據(jù)存儲(chǔ)問(wèn)題的代碼(初級(jí)),沒(méi)有進(jìn)行優(yōu)化的。 2008-09-18 12:07 duduli

          沒(méi)錯(cuò)是clob

            CLOB: 字符大對(duì)象Clob 用來(lái)存儲(chǔ)單字節(jié)的字符數(shù)據(jù)
            BLOB: 用于存儲(chǔ)二進(jìn)制數(shù)據(jù)

          @44you
            回復(fù)  更多評(píng)論   

          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地?cái)們?/h3>

          搜索

          •  

          積分與排名

          • 積分 - 256335
          • 排名 - 220

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          @duduli
          主站蜘蛛池模板: 大连市| 固始县| 泽普县| 佛冈县| 砀山县| 镇雄县| 仁布县| 阜新| 紫金县| 桐梓县| 蓬安县| 繁昌县| 本溪市| 罗江县| 湖南省| 老河口市| 安达市| 天等县| 车险| 始兴县| 太原市| 原阳县| 沧源| 黄浦区| 庄浪县| 定边县| 泊头市| 阜宁县| 清远市| 珠海市| 商河县| 郓城县| 南城县| 厦门市| 通许县| 北票市| 黔东| 金沙县| 高安市| 榆社县| 若尔盖县|