2013-04-22 14 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