- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面代码的问题是,假设如果 requests[] 数组中的特定查询包含错误,则语句查询将执行,并且将抛出带有错误的查询的异常,我希望这两个查询都被如果两个查询都没有错误则执行,否则不应执行任何查询,我应该对下面的代码执行什么操作才能获得所需的结果?请帮忙。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int rw = jTable1.getRowCount();
int col = jTable1.getColumnCount();
System.out.println("RC" + rw);
System.out.println("Col" + col);
String queries[] = new String[rw];
Object o[][] = new Object[rw][col];
String poid = jComboBox10.getSelectedItem().toString();
java.sql.Date xdate = null;
Connection con=null;
Statement st=null;
String cc = ims.MainWindow.cc;
try {
for (int i = 0; i < rw; i++) {
for (int j = 0; j < col; j++) {
o[i][j] = jTable1.getValueAt(i, j);
System.out.println("imj" + i + "," + j + "=" + o[i][j]);
}
if (String.valueOf(o[i][5]) == "") {
xdate=null;
}
else {
xdate = new java.sql.Date(df.parse(String.valueOf(o[i][5])).getTime());
}
queries[i] = "insert into po_items values('" + poid + "','" + cc + "','" + o[i][1] + "'," + o[i][2] + "," + o[i][4] + ",'" + xdate + "','" + o[i][7] + "'," + o[i][8] + ")";
}
for (int k = 0; k < rw; k++) {
System.out.println(queries[k]);
}
String query = "insert into tablex values('xx','yy')";
con=CPool.getConnection();
st=con.createStatement();
con.setAutoCommit(false);
for(int l=0;l<rw;l++)
{
st.addBatch(queries[l]);
}
st.addBatch(query);
st.executeBatch();
con.commit();
System.out.println(query);
} catch (Exception x) {
System.out.println(x.getMessage());
}
finally {
CPool.closeConnection(con);
CPool.closeStatement(st);
}
}
最佳答案
除非您执行/触发查询,否则您不会知道查询是否会出错。
但是,您可以做的是将查询分组到数据库事务中,如果一切正常则进行提交,如果任何查询失败则进行回滚。您可以使用 try catch block 来实现此目的(在异常时回滚;否则提交)。
关于java - Java 中的 addBatch() 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14375075/
Oracle addBatch()用法实例详解 PreparedStatement.addbatch()的使用 Statement和PreparedStatement的区别就不多废话了,直接说P
您好,我正在尝试使用 JDBC 从包含数千行的文件写入 Sybase IQ。人们说我应该使用batchUpdate。所以我正在通过 NIO 读取文件并将其添加到PreparedStatement 批处
我正在开发一个旧的struts应用程序,我需要通过java批处理将数据保存在数据库中(因为我们可能一次添加数千行)。 因此,我使用这种代码: Connection c = null; Prepared
我正在使用 PreparedStatement addBatch。 我应该如何处理插入行失败的情况? 例如,假设在要插入的 1000 行中,第 100 行插入失败,程序突然结束而没有插入剩余的行(即从
下面代码的问题是,假设如果 requests[] 数组中的特定查询包含错误,则语句查询将执行,并且将抛出带有错误的查询的异常,我希望这两个查询都被如果两个查询都没有错误则执行,否则不应执行任何查询,我
在 addBatch() 旁边PreparedStatement的方法|还有一个 addBatch(String) Statement 中的方法类(class)。 我想处理一系列不同的 sql 语句,
我可以从一个线程调用 executeBacth 而另一个线程继续在同一个 Statement(或 PreparedStatement)对象上调用 addBatch() 吗? 更新:有人遇到过这个问题吗
我想像 JDBC 手册中那样执行多个单独的 SQL 语句: Statement stmt = con.createStatement(); stmt.addBatch( "update reg
我正在使用以下代码 con.setAutoCommit(false); for(int i=0;i
我有这样的情况: con.setAutoCommit(true); Statement stmt = con.createStatement(); stmt.addBatch(query);//add
想象一下,我有 100 个 SELECT 查询,它们的输入不同。 PreparedStatement 可用于该值。 我在网上看到的所有文档都是关于批量插入/更新/删除的。我从未见过用于 select
我需要从一个数据库读取数百万行并将它们写入另一个数据库。我想使用 PreparedStatement.addBatch 进行大批量写入(可能 1000 行)。我不需要他们参与交易。我正在用 Scala
'innerXml' 是一个带有大量 xml 标签的 xml 文件。我正在尝试获取标签值并将它们转储到数据库表中。我试过下面的代码,它工作正常。 innerXml.Row.each { Row ->
我有一个带有 Oracle 数据库后端的 Java 应用程序,我需要在其中插入多行。我看过关于inserting multiple rows into Oracle的讨论,但我也对混合使用 JDBC
我目前有一个非常大的文件,其中包含几百万行条目,并希望将它们插入到数据库中。从 java 到 SQL 建立的连接有效,因为我尝试单独插入数据并且它有效,但是,当我切换到使用 executeBatch
PreparedStatement setString 取一个“null”(就像 String a = "null"),在 .addBatch 之后它被转换成一个普通的 null(就像 String
我是一名优秀的程序员,十分优秀!