当前位置:   article > 正文

7-java连接oracle-Oracle中的事务处理_java取oracle序列需要事务吗

java取oracle序列需要事务吗

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

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

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

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

7.2 jdbc连接

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

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

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'));
  • 1
  • 2
  • 3

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';
  • 1

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);   //设置事务不能默认提交
  • 1
conn.commit();	//提交事务 //在所有操作结束后一起提交
  • 1

注意:rollback()需要添加trycatch

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

8.8 只读事务

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

8.9 设置只读事务

 set transaction read only
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/509254
推荐阅读
相关标签
  

闽ICP备14008679号