您的位置:首页 > 编程语言 > Java开发

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

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

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

               结构:

</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();

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

三.触发器:下一篇再说,吃饭去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息