2012-02-02 59 views
-2

我打開關於抽取數據並插入數據庫的新問題。我改變和修改代碼變成這樣,但仍然無法正常工作。從平面文件中獲取數據並將數據插入到Java數據庫中

平面文件:

DT|00000001|TMDWH|UNIFI|00380520160|MAH SIEW YIN|11 |JALAN PP 2/8|TAMAN PUTRA PRIMA|PUCHONG|SELANGOR|47100|MALAYSIA|801110-14-5498||||||VOBB||A||11|JALAN PP 2/8|||TAMAN PUTRA PRIMA 

DT|00000002|TMDWH|UNIFI|00322012091|JUNITA BINTI JAMAL|6 10 KONDOMINIUM FAJARIA|JALAN PANTAI BARU|KUALA LUMPUR|KUALA LUMPUR|WILAYAH PERSEKUTUAN|59200|MALAYSIA|800129-09-5078||||||VOBB||A|||JALAN PANTAI BARU|6|KONDOMINIUM FAJARIA|KUALA LUMPUR  

計劃:

public void massageData(String tmp) { 
    String[] fields = tmp.replace("\"", " ") 
         .replace("\'","\'\'") 
         .trim() 
         .split("\\s*\\|\\s*"); 

Connection conn = null; 
ResultSet rs = null; 
PreparedStatement stmt = null; 

String actualMSISDN = parseMSISDN(fields[5]); 

    if (actualMSISDN.length() > 8) { 
     String [] aNo = getAreaCode(actualMSISDN).split("\\|"); 
     field[0] = getiCtr(parseMSISDN(fields[5])); 

     String stateCode = lookupStateCode(State); 
     String sQuery = "insert into DATA_999 (,RecordType,RecordNumber,SourceSystemApplicationId,TargetApplicationId,TelNo,Name,HouseNo,StreetName,AppartmentSuite,TownCity,State,PostalCode,Country,NewIC,OldIC,PassportNo,BRN,LatitudeDecimal,LongitudeDecimal,ServiceType,IndicatorType,CreateDate,Filler,Cr_Nl,HouseNo_New,LotNo_New,StreetName_New,AptNo_New,BuildingName_New,LowIDRange,HighIDRange,SectionName) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 
     try { 
      conn = ds.getConnection(); 
      stmt = conn.prepareStatement(sQuery); 

      int col = 0; 
      for (String field : fields) { 
       stmt.setString(++col, field); // Note: SQL API is 1-based (not zero-based) 
      } 

      int dbStat = stmt.executeUpdate(); 
      conn.close(); 
     } catch (SQLException s){ 
      logger.error(s.getMessage()); 
     } 
     finally { 
      try {if (stmt != null) stmt.close();} catch (SQLException e) {} 
      try {if (conn != null) conn.close();} catch (SQLException e) {} 
     } 
    } 
} 
+0

您能否在您的問題中描述每個行的字段如何映射到數據庫表中的列? – 2012-02-02 09:14:16

+1

你能發送拋出的異常嗎? 'DATA_999'表的DDL也很受歡迎。 – frm 2012-02-02 09:18:54

+1

請閱讀FAQ http://stackoverflow.com/faq – 2012-02-02 09:30:47

回答

2

你實際上是在試圖插入1行字段的兩倍。你的sql查詢似乎也有錯誤:第一個字段不存在,只有一個逗號。

在我看來,你自己並沒有做任何事情:你使用人們給你的建議,改變你的代碼,如果它不起作用,你創建一個新的問題。

+0

親愛的庫爾特杜波伊斯,我已經改變它,但仍然無法工作..再說一個主意? – Siti 2012-02-02 09:47:26

相關問題