2022年通过JDBC连接Oracle数据库中的十大技巧 .pdf

上传人:Q****o 文档编号:30548468 上传时间:2022-08-06 格式:PDF 页数:4 大小:41.93KB
返回 下载 相关 举报
2022年通过JDBC连接Oracle数据库中的十大技巧 .pdf_第1页
第1页 / 共4页
2022年通过JDBC连接Oracle数据库中的十大技巧 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年通过JDBC连接Oracle数据库中的十大技巧 .pdf》由会员分享,可在线阅读,更多相关《2022年通过JDBC连接Oracle数据库中的十大技巧 .pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、通过 JDBC 连接 Oracle 数据库中的十大技巧1、在客户端软件开发中使用Thin 驱动程序在开发 Java 软件方面, Oracle 的数据库提供了四种类型的驱动程序,二种用于应用软件、applets 、 servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。 在客户机端软件的开发中, 我们可以选择 OCI驱动程序或 Thin 驱动程序。 OCI驱动程序利用 Java 本地化接口( JNI),通过 Oracle客户端软件与数据库进行通讯。Thin 驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle 建议在客户端软件的

2、开发中使用OCI驱动程序,这似乎是正确的。但我建议使用Thin 驱动程序,因为通过多次测试发现,在通常情况下,Thin 驱动程序的性能都超过了OCI驱动程序。2、关闭自动提交功能,提高系统性能在第一次建立与数据库的连接时,在缺省情况下, 连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值false参数的 Connection 类的 setAutoCommit() 方法关闭自动提交功能,如下所示:conn.setAutoCommit(false); 值得注意的是,一旦关闭了自动提交功能, 我们就需要通过调用Connection类的 commit() 和 rollback()方法来

3、人工的方式对事务进行管理。3、在动态 SQL或有时间限制的命令中使用Statement 对象在执行 SQL命令时,我们有二种选择:可以使用PreparedStatement 对象,也可以使用 Statement 对象。无论多少次地使用同一个SQL命令,PreparedStatement 都只对它解析和编译一次。当使用Statement 对象时,每次执行一个 SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement 对象比使用 Statement 对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,除非成批

4、地处理 SQL命令,我们应当考虑使用Statement 对象。此外,使用 Statement 对象也使得编写动态SQL命令更加简单, 因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为, Statement对象可以使动态 SQL命令的创建和执行变得更加简单。4、利用 helper 函数对动态 SQL命令进行格式化名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 在创建使用 Statement 对象执行的动态 S

5、QL命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字OReilly插入表中的 SQL命令,则必须使用二个相连的“ ”号替换 OReilly中的“ ”号。完成这些工作的最好的方法是创建一个完成替换操作的helper 方法,然后在连接字符串心服用公式表达一个 SQL命令时,使用创建的helper 方法。与此类似的是,我们可以让 helper 方法接受一个 Date 型的值, 然后让它输出基于Oracle 的 to_date()函数的字符串表达式。5、利用 PreparedStatement 对象提高数据库的总体效率在使用 PreparedStatement 对象执行 SQL

6、命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。 然后,每当执行同一个 PreparedStatement 对象时,它就会被再解析一次, 但不会被再次编译。 在缓冲区中可以发现预编译的命令,并且可以重新使用。 在有大量用户的企业级应用软件中,经常会重复执行相同的 SQL命令, 使用 PreparedStatement 对象带来的编译次数的减少能够提高数据库的总体性能。 如果不是在客户端创建、 预备、执行 PreparedStatement 任务需要的时间长于 Statement 任务, 我会建议在除动态SQL命令之外的所有情况下使用 PreparedStatement 对象。6、在成

7、批处理重复的插入或更新操作中使用PreparedStatement 对象如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle 提供的 Statement 和 CallableStatement并不真正地支持批处理,只有PreparedStatement 对象才真正地支持批处理。我们可以使用addBatch() 和executeBatch()方法选择标准的 JDBC 批处理, 或者通过利用 PreparedStatement对象的 setExecuteBatch()方法和标准的 executeUpdate() 方法选择速度更快的Oracle 专有的方法。要使用Oracle

8、 专有的批处理机制,可以以如下所示的方式调用 setExecuteBatch():PreparedStatement pstmt3D null; try (OraclePreparedStatement) pstmt).setExecuteBatch(30); . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - pstmt.executeUpdate(); 调用 setExecuteBatch()时指定的值是一个上限,当达到该值

9、时,就会自动地引发 SQL命令执行,标准的 executeUpdate() 方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement 类的 sendBatch() 方法随时传输批处理任务。7、使用 Oracle locator方法插入、更新大对象( LOB )Oracle 的 PreparedStatement 类不完全支持 BLOB 和 CLOB 等大对象的处理,尤其是 Thin 驱动程序不支持利用PreparedStatement 对象的 setObject()和setBinaryStream()方法设置 BLOB 的值,也不支持利用setCharacterSt

10、ream()方法设置 CLOB 的值。只有 locator本身中的方法才能够从数据库中获取LOB类型的值。 可以使用 PreparedStatement 对象插入或更新 LOB , 但需要使用 locator才能获取 LOB的值。由于存在这二个问题, 因此,我建议使用 locator的方法来插入、更新或获取LOB的值。8、使用 SQL92语法调用存储过程在调用存储过程时,我们可以使用 SQL92或 Oracle PL/SQL , 由于使用 Oracle PL/SQL并没有什么实际的好处,而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程时使用SQL92 。9、使用 Ob

11、ject SQL 将对象模式转移到数据库中既然可以将 Oracle 的数据库作为一种面向对象的数据库来使用,就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象,将它们的属性映射到关系表中,然后在这些bean 中添加方法。尽管这样作在Java 中没有什么问题,但由于操作都是在数据库之外进行的,因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle 的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean 类。如果使用这种方式,不但 Java 应用

12、程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。10、利用 SQL完成数据库内的操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java 等过程化的编程语言。如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE 命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set 子句中使用多列子查询而在一个UPDATE命令中完成。 当能够在单一的 SQL命令中完成任务, 何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥SQL的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com