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

简介: 了解7-java连接oracle-Oracle中的事务处理。

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


文章目录


7 java连接oracle

7.1 odbc桥连

7.2 jdbc连接

7.3 在oracle中操作数据

7.4 使用子查询插入数据

7.5 使用子查询更新数据

8 Oracle中 事务处理

8.1 什么是事务

8.2 事务和锁

8.3 提交事务

8.5 回退事务

8.6 事务的几个重要操作

8.7 Java程序中如何使用事务

8.8 只读事务

8.9 设置只读事务


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()需要添加try、catch

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

8.8 只读事务


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


8.9 设置只读事务

set transaction read only



相关文章
|
2月前
|
存储 Java 关系型数据库
高效连接之道:Java连接池原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。频繁创建和关闭连接会消耗大量资源,导致性能瓶颈。为此,Java连接池技术通过复用连接,实现高效、稳定的数据库连接管理。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接池的基本操作、配置和使用方法,以及在电商应用中的具体应用示例。
81 5
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
61 3
|
3月前
|
Java 关系型数据库 MySQL
如何用java的虚拟线程连接数据库
本文介绍了如何使用Java虚拟线程连接数据库,包括设置JDK版本、创建虚拟线程的方法和使用虚拟线程连接MySQL数据库的示例代码。
76 6
如何用java的虚拟线程连接数据库
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
50 1
|
2月前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
60 1
|
3月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
243 6
|
3月前
|
SQL 存储 Java
Java中使用ClickHouseDriver连接和基本操作
通过上述步骤,你可以轻松地在Java应用中集成ClickHouse数据库,执行基本的CRUD操作。需要注意的是,实际开发中应当根据实际情况调整数据库连接配置(如URL中的主机、端口、数据库名等),并根据应用需求选择合适的异常处理策略,确保代码的健壮性和资源的有效管理。此外,对于复杂查询和大批量数据处理,建议充分利用ClickHouse的特性(如分布式处理、列式存储优化等),以进一步提升性能。
253 2
|
3月前
|
Java 关系型数据库 MySQL
数据库的连接用Java
本文介绍了如何使用Java连接MySQL数据库,包括注册JDBC驱动、创建数据库连接URL、设置数据库用户和密码、建立连接以及关闭连接的完整代码示例。
83 0
数据库的连接用Java
|
3月前
|
SQL Oracle 关系型数据库
Python连接Oracle
Python连接Oracle
31 0
|
4月前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
425 10

推荐镜像

更多