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

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

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

               结构:

				String sql = "insert into 物料领用 values(?,?,?,?,?,?,?)";
				String sql2 = "update 物料登记 set 物料总量 = 物料总量 - ? where 物料名 = ?";
				try {
					boolean autoCommit = conn.getAutoCommit();
					conn.setAutoCommit(false);//关闭自动提交功能
					PreparedStatement pst2 = null;
					
						
					f.pst = f.conn.prepareStatement(sql);
						
					pst2 = f.conn.prepareStatement(sql2);
						
					.......//数据库操作集合

					f.conn.commit();//提交事务
					conn.setAutoCommit(autoCommit);//恢复原来的提交模式
					
					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();

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

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





你可能感兴趣的:(java,sql,事务,批处理,触发器)