2017-05-25 46 views
0

我想XLSX數據存儲到Oracle數據庫中,我寫的代碼用java讀它,但我不能夠將它們存儲到數據庫,以及如何使用它利用PreparedStatement。 這裏是我的代碼讀取插入XLSX數據到Oracle datababe

FileInputStream fis = new FileInputStream(
    new File("C:\\Users\\wecme\\Desktop\\Writesheet.xlsx")); 
    XSSFWorkbook workbook = new XSSFWorkbook(fis); 
    XSSFSheet spreadsheet = workbook.getSheetAt(0); 
    Iterator <Row> rowIterator = spreadsheet.iterator(); 
    while (rowIterator.hasNext()) 
    { 
    row = (XSSFRow) rowIterator.next(); 
    Iterator <Cell> cellIterator = row.cellIterator(); 
    while (cellIterator.hasNext()) 
    { 
     Cell cell = cellIterator.next(); 
     switch (cell.getCellType()) 
     { 
      case Cell.CELL_TYPE_NUMERIC: 
      System.out.print( 
      cell.getNumericCellValue() + " \t\t "); 
      break; 
      case Cell.CELL_TYPE_STRING: 
      String s= cell.getStringCellValue(); 

      System.out.print(s+ " \t\t "); 

      break; 
     } 
    } 
    System.out.println(); 
    } 
    fis.close(); 

這裏是出放在控制檯:

EMP ID  EMP NAME  DESIGNATION   
tp01   Gopal  Technical Manager  
tp02   Manisha   Proof Reader  
tp03   Masthan   Technical Writer  
tp04   Satish   Technical Writer  
tp05   Krishna   Technical Writer 

我想將它們存儲在數據庫中,任何一個可以幫助我。 我寫的jdbc這一點,但我不能夠解決它

PreparedStatement ps=cn.prepareStatement("insert into table1 (empId,empName,Designatation) values(?,?,?)"); 

    while (rowIterator.hasNext()) 
    { 
    row = (XSSFRow) rowIterator.next(); 
    Iterator <Cell> cellIterator = row.cellIterator(); 
    while (cellIterator.hasNext()) 
    { 
     Cell cell = cellIterator.next(); 
     //System.out.println(cell); 
     String sss=cell.toString(); 
     } 
    } 

如何分配確切的指標像ps.setString(指數,SSS); 請幫我一把。

+0

如果您的Excel工作表具有相同的列的數據庫表,那麼你可以使用SQL Loader實用程序。你不必爲它編寫代碼,除非代碼是你的最終目標。在這個意義上 – 11thdimension

+0

相同的列,列或數據類型 –

+0

相同的列在同一順序相同的數據類型的名稱。然後,SQL加載器很容易做到這一點。它可能有一些選項來加載無序列,但我沒有使用過。 – 11thdimension

回答

-1

我必須同意11thdimension - 如果你想從excel文件中讀取數據並將其加載到數據庫中,那麼你可以使用一些工具(可能從Excel導出數據爲CSV文件),或者你可以編寫代碼那 - 我認爲你提供給我們的代碼是一個很好的起點。

如果你想存儲整個xlsx文件在一些列(例如BLOB類型)比雖然我認爲這不是好的做法(對我來說這是一個更好的解決方案,記住只有url或文件路徑在db)比你應該有一些流,你可以讀取整個文件,並將它寫入該列中的字節。在這種情況下,看看這些線:

Similar question

問題不是那麼清楚,這是不夠具體,所以這個答案太籠統。

+0

如果問題不清楚,請使用註釋澄清問題。我確信他不想撕毀數據庫中的xlsx文件。 – miracle173

+0

如果你仔細閱讀,我給了他兩種情況的建議。所以請仔細閱讀答案。 – nick79

+0

還要說明一點,我給我的答案之前補充意見 - 在那裏,他問怎麼做安裝插件等等 – nick79