7-java连接oracle-Oracle中的事务处理

CSDN话题挑战赛第2期
参赛话题:学习笔记

Oracle基础知识整理:C站下载链接

1 Oracle 基础知识2 Oracle 安装(附详细安装操作手册)3 Oracle 基本使用
4 Oracle 用户管理6 -1Oracle 表的管理-创建修改表6-2 Oracle 表的管理-表查询
6-3 Oracle 表的管理-表复杂查询6-4 Oracle表复杂查询 -多表查询6-5 Oracle表复杂查询 -子查询
6-6 Oracle表复杂查询 -合并查询-增删改数据1112

7 java连接oracle

7.1 odbc桥连

  • 1)配置数据源:控制面板—》管理工具—》数据源(ODBC)—》用户DNS选项卡中-》添加—》Oracle in OraDb10g_home1—》完成-》Data Source Name:testOra ;TNS Service Name:orcl->点击TestConnection按钮输入用户名和密码先测试一下-》OK—》确定

  • 2)新建项目

  • 3)添加try catch,代码如下

import java.sql.*;
try {
 //加载驱动
 Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
 //数据库连接
 Connection conn=
 DriverManager.getConnection ("jdbc:odbc:testOra","scott","tigger");
 //下面和sqlserver是一样的
 Statement st=conn.createStatement();
 ResultSet rs=st.executeQuery("select *  from emp");
 while (rs.next()) {   System.out.println("用户名:"+
   rs.getString("ename"));    
 }
} catch (Exception e) {
 e.printStackTrace();

}

7.2 jdbc连接

 Class.forname ("oracle.jdbc.driver.OracleDriver");

 Connection conn=DriverManager.getconnection("jdbc:oracle:thin:@ruanjian-whq:1521:oracle","scott","tigger");

7.3 在oracle中操作数据

使用特定格式插入日期值

·使用 to_date函数

请大家思考:如何插入列带有日期的表,并按照年-月-日的格式插入

insert into users(2,'小红',to_date('1988-12-2','yyyy-mm-dd'));

insert into users(2,'小红',to_date('1988/12/2','yyyy/mm/dd'));

7.4 使用子查询插入数据

·介绍

当使用values字句时,一次只能插入一行数据,当使用子查询插入数据时,一条insert语句可以插入大量的数据,当处理行迁移或者装载外部表的数据到数据库时,可以使用子查询来插入数据。

7.5 使用子查询更新数据

·介绍

使用update语句更新数据时,既可以使用表达式或者数值直接修改数据,也可以使用子查询修改数据

希望员工scott 的岗位、工资、补助与smith员工一样

update emp set (job,sal,comm)=(select job,sal,comm from emp where ename='SMITH') where ename='SCOTT';

8 Oracle中 事务处理

8.1 什么是事务

**事务:**用于保证数据的一致性,它由一组相关的dml(数据操作语言:增加、删除、修改)语句组成,改组的dml语句要么全部成功,要么全部失败。

如:网上转账就是典型的要用事务来处理,用以保证数据的一致性。

8.2 事务和锁

当执行一个事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户修改表的结构,这里对我们用户来讲是非常重要的。

8.3 提交事务

使用commit语句可以提交事务,当执行了commit语句之后,会确认事务的变化,结束事务、删除保存点、释放锁,当使用commit语句结束事务之后,其它会话将可以查看到事务变化后的新数据。

8.5 回退事务

在介绍回退事务之前,我们先介绍一下保存点(savepoint)的概念和作用。保存点是事务中的一个点,用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。当执行rollback时,通过指定保存点可以回退到指定的点。

保存点的个数没有限制

回退事务必须在提交(commit)事务之前

8.6 事务的几个重要操作

1)设置保存点

savepoint a

2)取消部分事务

rollback to a

3)取消全部事务

rollback

8.7 Java程序中如何使用事务

在java操作数据库时,为了保证数据的一致性,比如转账操作(1)从一个账户减掉10 ( 2 )在另一个账户上加入 10 (2)在另一个账户上加入10 2)在另一个账户上加入10,我们看如何使用事务

conn.setAutoCommit(false);   //设置事务不能默认提交
conn.commit();	//提交事务 //在所有操作结束后一起提交

注意:rollback()需要添加trycatch

conn.rollback();	//如果发生异常,事务回滚

8.8 只读事务

​ 只读事务是指只允许执行查询的操作,而不允许执行任何其他dml操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。假定机票代售点每天18点开始统计今天的销售情况,这时可以使用只读事务,在设置了只读事务后,尽管其他会话可能会提交新的事务,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据信息。

8.9 设置只读事务

 set transaction read only
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

度假的小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值