当前位置:  数据库>oracle

Oracle事务处理及实例演示JDBC操作批量删除

    来源: 互联网  发布时间:2017-06-08

    本文导语: 事务 作为逻辑处理的基本单位,对于数据库操作来说由一条或者多条sql语句来构成。当然还有针对非数据库操作的,如在计算机中设置的还原点即是一个很好的应用。 对于事务的基本性质在另一篇中有所叙述:SQL 事务及实例演...

事务

作为逻辑处理的基本单位,对于数据库操作来说由一条或者多条sql语句来构成。当然还有针对非数据库操作的,如在计算机中设置的还原点即是一个很好的应用。

对于事务的基本性质在另一篇中有所叙述:SQL 事务及实例演示

Oracle和sql server在事务上区别

sql server中的事务一般分为隐式事务、显式事务、自动提交事务。

自动事务:对于sql server来说,当客户端提交一条sql语句时,这时候sql server都会自动启动一个事务;对于这样的事务,在执行完sql语句后会自动提交。

显示事务:这也是比较常见的使用的事务;其实实质上也就是在自动事务上,增加一个Begintran,conn.commit,end tran.

隐式事务:相比显示事务需要开启connection,隐式事务是默认开启事务的Begin和数据库连接的。当然后面还是要进行commit或rollback操作的。

而oracle的事务就没有这么如此丰富了,和sql server的隐式事务类似;无需开启conn和Begin,只要在后续操作进行commit或rollback操作。

事务提交的机制

先了解一些基础的概念,data buffer cache:相当于一块连接硬盘文件和oracle数据操作的高速只读缓存。

SGA:在启动oracle实例后,在内存中开辟的一块内存空间,用于存放服务器的控制信息以及数据。

数据块:数据存储的基本单位。

当连接到数据库后,oracle为连接的用户创建独立的进程-影子进程,这个进程伴随用户的整个操作;

1.检查数据块

2.构造undo数据块

以此来回滚数据

3.生成redo日志

用于重新操作的日志存放在log buffer cache中。

4.lgwr进程启动,提交事务并书写所有日志文件

java事务处理

TestDemo:结合位于java.sql下面的接口 PreparedStatement和oracle事务实现批量删除

常用方法:

int[]executeBatch():

将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。

voidsetString(int parameterIndex,

String x):

将指定参数设置为给定Java String 值。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARCHAR 或 LONGVARCHAR 值。

Demo

/**删除用户-2014年8月11日18:19:04
 * @userId 用户id数组
 */
publicBoolean DeleteUser(String[] userId){
//一个线程安全的可变字符串
StringBuffersb=new StringBuffer();
sb.append("deletefrom t_user where user_id =?");
Connectionconn=null;
PreparedStatementpsmt = null;
Booleanflag=false;
 
conn=DButil.getConnection();
try {
//关闭自动提交事务
conn.setAutoCommit(false);
//创建一个 PreparedStatement 对象来将参数化的 SQL语句发送到数据库。
psmt= conn.prepareStatement(sb.toString());
//将一组参数添加到此 PreparedStatement 对象的批处理命令中。
for(inti =0 ;i


    
 
 

您可能感兴趣的文章:

  • Oracle 数据库针对表主键列并发导致行级锁简单演示
  • Linux上建立第二个ORACLE实例分析
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • oracle的存储过程实例讲解
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • oracle分页存储过程 oracle存储过程实例
  • C#连接Oracle数据库的实例方法
  • Oracle数据库实例两则
  • Oracle 删除归档日志实例
  • Oracle 10g for solaris准备工作和实例的删除
  • Oracle 11G 无法连接到数据库实例故障排除
  • Linux下设置Oracle 10g 服务以及实例自动启动
  • oracle group by语句实例测试
  • Oracle数据库异构服务原理及实例说明
  • Linux下删除Oracle实例
  • 与Oracle RAC相关的连接配置写法实例
  • Oracle监听器Server端与Client端配置实例
  • Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
  • oracle删除已存在的表的实例
  • Aix 5.3下自动备份Oracle多个实例
  • Oracle数据库安全性管理基本措施实例解析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • 在linux 中如何删除oracle db 与卸载oracle.
  • Oracle删除表前判断表名是否存在若存在则删除
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • oracle 彻底删除方法
  • Oracle删除后不能重新安装的解决方法
  • ubuntu如何彻底删除oracle
  • 彻底删除Oracle数据库的方法
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • shell脚本操作oracle删除表空间、创建表空间、删除用户
  • 技巧分享 删除Oracle10G中的垃圾表
  • Oracle删除带有空格的表
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • Linux环境下完全删除Oracle
  • oracle怎么删除用户提供解决方案
  • linux下如何卸载oracle?直接删除就可以么??
  • oracle单库彻底删除干净的执行步骤
  • 删除Oracle中奇怪的表名称BIN$…的方法
  • linux oracle数据库删除操作指南
  • oracle数据库添加或删除一列的sql语句
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,