SQL中的事务以及批量更新
来源:互联网 发布:c语言专家电子书 编辑:程序博客网 时间:2024/06/05 06:16
1、SQL中的事务指的是将一组SQL语句同时提交,举个例子吧:在银行转账的时候,它的执行过程应该是先把钱取出来,然后再把钱存到另一个账号里面去吧,它的SQL执行过程应该是先DELETE,然后再UPDATE吧,如果在UPDATE的时候突然网络出了问题,其结果会是怎样呢?按照单条语句的提交策略则会因此导致钱没存进去,但是却已经取出来啦,这样的话我相信银行早晚会乱套的。但是,我们可以才去事务的方法去解决,即把DELETE与UPDATE捆绑为一个事物,对它们同时进行提交,如果发生错误就对其进行回滚。这样的话,数据就不会因此而乱套啦。但是,默认情况下,数据库连接处于自动提交模式(autocommit mode),所以我们先得关闭这种自动提交模式,看看下面的例子吧:
conn.setAutoCommit(false);
Statement stat = conn.CreateStatement();
然后任意多次的执行executeUpdate方法:
stat.executeUpdate(command1);
stat.executeUpdate(command2);
stat.executeUpdate(command3);
···
执行所有命令之后,调用commit方法:
conn.commit();
如果出现错误,则回滚:
conn.rollback();
当然,我们可以使用保存点(Save point)来更好的控制回滚操作,这样的话只需返回到保存点,而非事务的开头。如:
Savepoint svpt = conn.setSavepoint();
conn.rollback(svpt);
2、批量更新
批量更新与普通更新的区别前者一次性把所有的语句都更行啦,所使用到的语句如下:
也必须保证 conn.setAutoCommit(false);,且executeBatch();//提交后也需要conn.commit();
①先把所有的SQL都放入addBatch中,如:stat.addBatch(command);//command为SQL语句
你可以把这个语句放到循环中添加。
②在最后通过更新语句一次性更新,如下:
int[] counts = stat.executeBatch();//为所有已提交的命令返回一个记录数的数组
- SQL中的事务以及批量更新
- SQL中的事务以及批量更新
- ibatis 批量更新与事务
- SQL批量更新数据库
- 批量更新sql 语句
- SQL 批量更新语句
- 批量更新 sql
- sql批量更新
- SQL批量更新
- Sql server 批量更新
- 批量更新sql |批量update sql
- 根据条件批量删除sql中的表以及其他内容
- Oracle 事务机制 批量添加,修改,更新
- 使用FMDB事务批量更新数据库
- 使用FMDB事务批量更新数据库
- 使用FMDB事务批量更新数据库
- 使用FMDB事务批量更新数据库
- 浅谈FMDB事务批量更新操作耗时
- winform应用程序自动更新版本
- 深入java虚拟机(七)深入源码看java类加载器ClassLoader
- 深入java虚拟机(八)开发自己的类加载器
- Java多线程基础知识
- java异常处理机制
- SQL中的事务以及批量更新
- Java多线程总结之线程安全队列Queue
- BlockingQueue详解
- PrepareStatement与Statement之间的区别
- 使用ConcurrentLinkedQueue尽量不用size()
- Object类分析equals、hashcode、clone
- JAVA编程经验
- java反编译工具jad
- Chrome源码剖析 【一】 Chrome的多线程模型