Java 将字符数组插入数据库
我想在DB表中插入一个二维数组。有没有办法用一个insert语句而不是使用多个insert语句将这些值插入DB?这些多个语句会导致数据库连接池问题,并会在应用程序中造成延迟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];
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();