Java 将字符数组插入数据库

Java 将字符数组插入数据库,java,jdbc,Java,Jdbc,我想在DB表中插入一个二维数组。有没有办法用一个insert语句而不是使用多个insert语句将这些值插入DB?这些多个语句会导致数据库连接池问题,并会在应用程序中造成延迟 String[][] a = new String[10][2]; for(int i =0;i<10;i++) { st.executeUpdate("Insert into sap_details VALUES a[i][0],a[i][1]); } String[]a=新字符串[10][2];

我想在DB表中插入一个二维数组。有没有办法用一个insert语句而不是使用多个insert语句将这些值插入DB?这些多个语句会导致数据库连接池问题,并会在应用程序中造成延迟

String[][] a = new String[10][2];
for(int i =0;i<10;i++)
{
        st.executeUpdate("Insert into sap_details  VALUES a[i][0],a[i][1]);
}
String[]a=新字符串[10][2];

对于MySQL(inti=0;i),类似这样的功能应该可以实现,很好,Oracle不会喜欢它。DB2、SQL Server(自10.0版开始,即2008年)、PostgreSQL(自8.2版开始)、MySQL和H2都支持此功能

        String[][] a = new String[10][2];    
        StringBuilder sb = new StringBuilder("Insert into sap_details (a,b) VALUES ");               
        for(int i =0;i<a.length;i++){
                sb.append("(\'");
                sb.append(a[i][0]);
                sb.append("\',\'");
                sb.append(a[i][1]);
                sb.append("\')");
                if(i < a.length -1 )
                    sb.append(",");
         }
         st.executeUpdate(sb.toString());
String[]a=新字符串[10][2];
StringBuilder sb=新StringBuilder(“插入sap_详细信息(a、b)值”);
对于(inti=0;i使用JDBC?使用准备好的语句也会有所帮助

例子
String[]a=新字符串[10][2];
PreparedStatement pst=con.prepareStatement(“插入sap_详细信息值(?)”;
对于(int i=0;i<10;i++){
pst.setString(1,a[i][0]);
pst.setString(2,a[i][1]);
pst.addBatch();
}
int[]results=pst.executeBatch();

如果可能的话,最好避免使用手工滚动的SQL字符串。对于用户无法控制的输入,我肯定会使用预先准备好的语句。但我有点喜欢这种风格。谢谢,但我使用的是Oracle DB。非常感谢!我想这应该可以帮助我解决连接池问题/死锁引起的任何问题r如果有多个INSERT语句,则会出现任何DB问题。
    String[][] a = new String[10][2];
    PreparedStatement pst = con.prepareStatement("INSERT INTO sap_details VALUES (?,?)");
    for (int i = 0; i < 10; i++) {
        pst.setString(1, a[i][0]);
        pst.setString(2, a[i][1]);
        pst.addBatch();
    }
    int[] results = pst.executeBatch();