Statement sm = cn.createStatement();
string sql1="update table1 set....";
string sql2="update table2 set....";
sm.addBatch(sql1);
sm.addBatch(sql2);
sm.executeBatch() ;
问什么只更新了第一个table1的数据呢,也就是说只执行了sql1,而sql2没有执行,郁闷之中,求解!
string sql1="update table1 set....";
string sql2="update table2 set....";
sm.addBatch(sql1);
sm.addBatch(sql2);
sm.executeBatch() ;
问什么只更新了第一个table1的数据呢,也就是说只执行了sql1,而sql2没有执行,郁闷之中,求解!
35Statement sm = cn.createStatement();
API;理解一下事务!就OK
通过Hibernate3.0执行批量更新的程序代码: Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); String hqlUpdate = "update Customer set name = :newName where name = :oldName"; int updatedEntities = s.createQuery( hqlUpdate ) .setString( "newName", newName ) .setString( "oldName", oldName ) .executeUpdate(); tx.commit(); session.close();
{
//保存当前自动提交模式
boolean autoCommit=conn.getAutoCommit();
//关闭自动提交
conn.setAutoCommit(false);
//使用Statement同时收集多条sql语句
stmt.addBatch(insert_sql1);
stmt.addBatch(insert_sql2);
stmt.addBatch(update_sql3);
..
//同时提交所有的sql语句
stmt.executeBatch();
//提交修改
conn.commit();
conn.setAutoCommit(autoCommit);
}
catch(Exception e)
{
e.printStackTrace()
conn.rollback();
}