数据来源String str[][]={{"1","a"},{"2","b"},{"3","c"},{"4","d"},{"5","b"},{"6","f"},{"7","e"},{"8","f"},{"9","g"},{"10","y"}};处理代码:
Data da=new Data(); //数据库获取连接
Connection conn=da.getConnection();
DatabaseMetaData dbmData = conn.getMetaData();if (dbmData.supportsBatchUpdates())
{
PreparedStatement psStatement = null;
String sql="insert into test (id,name)values(?,?)";
psStatement = conn.prepareStatement(sql); int i=1;
while(i<str.length)
{
psStatement.setInt(1,Integer.parseInt(str[i][0]));
psStatement.addBatch();
psStatement.setString(2,str[i][1]);
psStatement.addBatch();
i++;
}
psStatement.executeUpdate();
}
运行结果:数据库中只有10,y两个数据。求解决指导!
Data da=new Data(); //数据库获取连接
Connection conn=da.getConnection();
DatabaseMetaData dbmData = conn.getMetaData();if (dbmData.supportsBatchUpdates())
{
PreparedStatement psStatement = null;
String sql="insert into test (id,name)values(?,?)";
psStatement = conn.prepareStatement(sql); int i=1;
while(i<str.length)
{
psStatement.setInt(1,Integer.parseInt(str[i][0]));
psStatement.addBatch();
psStatement.setString(2,str[i][1]);
psStatement.addBatch();
i++;
}
psStatement.executeUpdate();
}
运行结果:数据库中只有10,y两个数据。求解决指导!
PreparedStatement psStatement = null;
String sql="insert into test (id,name)values(?,?)";
psStatement = conn.prepareStatement(sql);
psStatement.setString(1,str[i][0]);
psStatement.setString(2,str[i][1]);
psStatement.executeUpdate();
psStatement.close();
}
我前面使用的也是这样,但是有异常
com.microsoft.jdbc.base.BaseBatchUpdateException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid parameter binding(s).
at com.microsoft.jdbc.base.BasePreparedStatement.executeBatchEmulation(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeBatch(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at com.servlet.Test.puess(Test.java:97)
at com.servlet.Test.doGet(Test.java:36)
搞定了,还需要把第一个psStatement.addBatch();去掉。