欢迎来到天天文库
浏览记录
ID:16404383
大小:36.00 KB
页数:4页
时间:2018-08-09
《oracle数据库链接建立技巧解析÷》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据库链接(DATABASELINK)是在分布式环境下,为了访问远程数据库而创建的数据通信链路。数据库链接隐藏了对远程数据库访问的复杂性。通常,我们把正在登录的数据库称为本地数据库,另外的一个数据库称为远程数据库。有了数据库链接,可以直接通过数据库链接来访问远程数据库的表。常见的形式是访问远程数据库固定用户的链接,即链接到指定的用户,创建这种形式的数据库链接的语句如下: CREATEDATABASELINK链接名CONNECTTO账户IDENTIFIEDBY口令 USING服务名; 创建数据库链接,需要CREATEDATABASELINK系统权限。 数据库链接一旦
2、建立并测试成功,就可以使用以下形式来访问远程用户的表。 表名@数据库链接名 例:在局域网上创建和使用数据库链接。 步骤1:创建远程数据库的服务名,假定局域网上另一个数据库服务名为MYDB_REMOTE。 步骤2:登录本地数据库SCOTT账户,创建数据库链接: CONNECTSCOTT/TIGER@MYDB CREATEDATABASELINKabcCONNECTTOscottIDENTIFIEDBYtigerUSING'MYDB_REMOTE'; 执行结果为: 数据库链接已创建。 查询远程数据库的数据: SELECT* FROMemp@abc; 结果
3、略。 步骤4:一个分布查询: SELECTename,dnameFROMemp@abce,deptdWHEREe.deptno=d.deptno; 结果略。 说明:在本例中,远程数据库服务名是MYDB_REMOTE,创建的数据库链接名称是abc.emp@abc表示远程数据库的emp表。步骤4是一个联合查询,数据来自本地服务器的dept表和远程服务器的emp表。如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UP
4、DATE命令中完成。当能够在单一的SQL命令中完成任务,何必要让数据在网上流来流去的?建议用户认真学习如何最大限度地发挥SQL的功能。Oracle数据库链接时的一些技巧和实例讲解 通常在系统中会为常用的对象预定义了一些同义词,利用它们可以方便地访问用户的常用对象。而在客户端软件开发中使用Thin驱动程序,在开发Java软件方面,Oracle的数据库中提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动
5、程序利用Java本地化接口(JNI),通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle建议在客户端软件的开发中使用OCI驱动程序,这似乎是正确的。但我建议使用Thin驱动程序,因为通过多次测试发现,在通常情况下,Thin驱动程序的性能都超过了OCI驱动程序。 我们在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能。 值得注意的是,一
6、旦关闭了自动提交功能,我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。 1)Statement对象的使用 数据库链接时不可缺的是Statement对象,Statement对象是JDBC程序设计中非常重要的对象,它包含了SQL语句的查询和更新的操作,通过Statement对象可以完成对数据库的查询和更新操作,可以这样理解:Statement对象是操作数据库数据的载体。在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个S
7、QL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement对象比使用Statement对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,除非成批地处理SQL命令,我们应当考虑使用Statement对象。 并且,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。
此文档下载收益归作者所有