处理代码:
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两个数据。求解决指导!
8 个解决方案
#1
#2
覆盖了,
while(i<str.length){
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();
}
#3
psStatement.executeUpdate();
改成
psStatement.execute Batch();
改成
psStatement.execute Batch();
#4
我知道覆盖了,那怎么解决了?
#5
我前面使用的也是这样,但是有异常
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)
#6
搞定了,还需要把第一个psStatement.addBatch();去掉。
#7
psStatement.executeUpdate(); 写在while里面。
#8
第一句 psStatement.addBatch(); 删掉 试试
#1
#2
覆盖了,
while(i<str.length){
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();
}
#3
psStatement.executeUpdate();
改成
psStatement.execute Batch();
改成
psStatement.execute Batch();
#4
我知道覆盖了,那怎么解决了?
#5
我前面使用的也是这样,但是有异常
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)
#6
搞定了,还需要把第一个psStatement.addBatch();去掉。
#7
psStatement.executeUpdate(); 写在while里面。
#8
第一句 psStatement.addBatch(); 删掉 试试