JDBC 事务处理机制、批处理、触发器

来源:互联网 发布:中西部地区的淘宝村 编辑:程序博客网 时间:2024/06/06 20:31

一.事务:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全部不做,是一个不可分割的工作单位。

        特性:原子性、一致性、隔离性(不受其他操作干扰)、持续性。

               结构:

</pre><p><pre name="code" class="java"><span style="white-space:pre"></span>String sql = "insert into 物料领用 values(?,?,?,?,?,?,?)";String sql2 = "update 物料登记 set 物料总量 = 物料总量 - ? where 物料名 = ?";try {<span style="white-space:pre"></span>boolean autoCommit = conn.getAutoCommit();conn.setAutoCommit(false);//关闭自动提交功能PreparedStatement pst2 = null;f.pst = f.conn.prepareStatement(sql);pst2 = f.conn.prepareStatement(sql2);
<span style="white-space:pre"></span>.......//数据库操作集合
f.conn.commit();//提交事务conn.setAutoCommit(autoCommit);//恢复原来的提交模式<pre name="code" class="java"><span style="white-space:pre"></span>pst.close();pst2.close();
} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();System.out.println("操作失败,任务撤销");try {//回滚,撤销之前操作f.conn.rollback();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
二.批处理:允许将一系列的(主要是插入和更新操作)SQL语句组合到一起,并集中在一个数据库绘画中执行。

            优点:避免了向数据库进行一连串的调用,从而可以显著提高程序的运行效率。

            使用方法:调用Statement接口中提供的addBatch()和executeBatch()等方法。

            结构 stmt.addBatch(“数据库操作SQL代码块”);  

stmt.addBatch(“数据库操作SQL代码块”);

stmt.addBatch(“数据库操作SQL代码块”);

stmt.addBatch(“数据库操作SQL代码块”); 

                        stmt.executeBatch();

conn.commit();

stmt.close();

conn.close();

和事务的区别:事务是具有完整性的,要么全部执行,要么全部不执行,批处理只是一起处理,可能有的成功了,有的失败了。

三.触发器:下一篇再说,吃饭去。





0 0
原创粉丝点击