2013-04-22 10 views
0

我必須製作一個程序,我將從Excel中讀取數據,並且我將它們存儲在數據庫中。 我已經設法創建了每個excel文件的名稱並通過excel文件的第一行創建表的字段。現在我必須將excel文件中的所有其他數據存儲在表中。 我已經在下面的代碼,但我有「插入」元素的錯誤。命令從Excel文件中插入多個值

private static String fillTable(Connection con, String fieldname, HashMap<String, Integer> tableFields){ 
     Iterator iter = tableFields.keySet().iterator(); 
     Iterator cells = tableFields.keySet().iterator(); 
     String str=""; 
     String[] tousFields = new String[tableFields.size()]; 
     int i = 1; 
     while (iter.hasNext()){ 
      String fieldName = (String) iter.next(); 
      Integer fieldType=(Integer)tableFields.get(fieldname); 
      while (cells.hasNext()){ 
       String fieldName1 = (String) cells.next(); 
       Integer fieldType1=(Integer)tableFields.get(fieldName1); 
       } 
       tousFields[i++]= str; 
     } 
     try 
     { 
      Statement stmt = con.createStatement(); 
      System.out.println ("Use the table"); 
      String all = org.apache.commons.lang3.StringUtils.join(tousFields, ","); 
      String sql= INSERT INTO "tablename" + VALUES (" +all +")"; 
      stmt.executeUpdate (sql); 

我想要讀取所有的列和行。我如何在INSERT中編寫命令? 提前謝謝!

+0

在'insert'過程中你會得到什麼'錯誤'。郵政堆棧跟蹤。 – Apurv 2013-04-22 13:39:04

+0

@Apurv他將+值作爲+ all +傳遞出去,無論如何這都不會起作用。 – 2013-04-22 13:40:11

+0

是的,我在這裏有錯誤:字符串sql = INSERT INTO「tablename」+ VALUES(「+ all +」)「; – dedmar 2013-04-22 13:41:01

回答

0

將sql行修改爲如下所示。

String sql= "INSERT INTO tablename VALUES (" +all +")"; 
+0

表名是一個字符串! – dedmar 2013-04-22 13:45:06

+0

@efoikonom更新了我的答案。 – 2013-04-22 13:49:13