将arraylist写入数据库java

我有两个arraylists插入数据库表中的2列,如下所示:

arraylist1: 123444, 324555, 6423643, 532326 arraylist2: jkfdsl, nkjfsdlj, jdslkfjdlkj, jfsldjfsk, fjdlskjfs 

我编写了以下代码来插入arraylists但它不起作用。 我将非常感谢你的帮助。

 try { // Prepare a statement to insert a record String sql = "INSERT INTO soundsdata.splog (arraylist1, arraylist2) VALUES(?,?)"; pstmt = (PreparedStatement) con.prepareStatement(sql); pstmt.setArray(1,sptospring); pstmt.setString(2,eachList.toString()); // Insert the row pstmt.executeUpdate(); }finally { pstmt.close(); } 

这是你可以做的事情:

假设您正在尝试创建一行,其中第一column将以逗号分隔格式包含第一个ArrayList的内容,第二column将包含第二个ArrayList的内容

 StringBuilder buffer = new StringBuilder(); boolean processedFirst = false; String firstParam = null, secondParam = null; try{ for(String record: arrayList1){ if(processedFirst) buffer.append(","); buffer.append(record); processedFirst = true; } firstParam = buffer.toString(); }finally{ buffer = null; } processedFirst = false; buffer = new StringBuilder(); try{ for(String record: arrayList2){ if(processedFirst) buffer.append(","); buffer.append(record); processedFirst = true; } secondParam = buffer.toString(); }finally{ buffer = null; } secondParam = buffer.toString(); String sql = "INSERT INTO soundsdata.splog (arraylist1, arraylist2) VALUES(?,?)"; try{ psmt = (PreparedStatement) con.prepareStatement(sql); pstmt.setString(1,firstParam); pstmt.setString(2,secondParam); pstmt.executeUpdate(); }finally { pstmt.close(); } 

您不能将ArrayList存储在varchar列中。

你需要存储一个字符串。

 PreparedStatement ps = connection.prepareStatement(query); for (Record record : arraylist1) { int index=1; ps.setString(index++,record.getItem()); ps.setString(index++,record.getItem2()); // } ps.executeBatch(); conn.commit(); 

插入多条记录:

 public String saveOrder(ArrayList insertList){ System.out.println("SaveOrder DAO Method is calling " +insertList.size()); Connection con=null; PreparedStatement ps2=null; try { con=open(); con.setAutoCommit(false); con.getTransactionIsolation(); ps2=con.prepareStatement(sql1); Iterator it=insertList.iterator(); while(it.hasNext()){ KIT0053MBean order=(KIT0053MBean)it.next(); ps2.setString(1, model.getCustomerid()); ps2.setString(2, model.getSerialid()); ps2.addBatch(); } int i[]=ps2.executeBatch(); System.out.println("###### insertion1### row "+i.length); con.commit(); con.setAutoCommit(true); } catch (Exception e) { System.out.println(e.getMessage()); }finally{ close(con); close(ps2); } } 

String [] stringArray = lists.toArray(new String [lists.size()]);

  String string1 = stringArray[0]; String string2 = stringArray[1]; String string3 = stringArray[2]; String string4 = stringArray[3]; String string5 = stringArray[4]; 

//然后编写插入数据库的查询

插入表名值(string1 ……)