java操作Oracle.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java 操作 Oracle 数据库的高效技巧 Java 数据库连接(JDBC)API 是一系列能够让 Java 编程人员访问数据库的接口,各个开发商的接口并不完全相同。在使用多年的 Oracle 公司的 JDBC 后,_accumulated了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。 一、在客户端软件开发中使用 Thin 驱动程序 在开发 Java 软件方面,Oracle 的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets 等客户端软件,另外二种用于数据库中的 Java 存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择 OCI 驱动程序或 Thin 驱动程序。OCI 驱动程序利用 Java 本地化接口(JNI),通过 Oracle 客户端软件与数据库进行通讯。Thin 驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle 建议在客户端软件的开发中使用 OCI 驱动程序,这似乎是正确的。但是,我建议使用 Thin 驱动程序,因为通过多次测试发现,在通常情况下,Thin 驱动程序的性能都超过了 OCI 驱动程序。 二、关闭自动提交功能,提高系统性能 在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值 false 参数的 Connection 类的 setAutoCommit() 方法关闭自动提交功能,如下所示:conn.setAutoCommit(false);值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用 Connection 类的 commit() 和 rollback() 方法来人工的方式对事务进行管理。 三、在动态 SQL 或有时间限制的命令中使用 Statement 对象 在执行 SQL 命令时,我们有二种选择:可以使用 PreparedStatement 对象,也可以使用 Statement 对象。无论多少次地使用同一个 SQL 命令,PreparedStatement 都只对它解析和编译一次。当使用 Statement 对象时,每次执行一个 SQL 命令时,都会对它进行解析和编译。这可能会使你认为,使用 PreparedStatement 对象比使用 Statement 对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的 SQL 操作中,除非成批地处理 SQL 命令,我们应当考虑使用 Statement 对象。此外,使用 Statement 对象也使得编写动态 SQL 命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的 SQL 命令。 四、利用 helper 函数对动态 SQL 命令进行格式化 在创建使用 Statement 对象执行的动态 SQL 命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字 O'Reilly 插入表中的 SQL 命令,则必须使用二个相连的“''”号替换 O'Reilly 中的“'”号。完成这些工作的最好的方法是创建一个完成替换操作的 helper 方法,然后在连接字符串时使用公式表达一个 SQL 命令时,使用创建的 helper 方法。与此类似的是,我们可以让 helper 方法接受一个 Date 型的值,然后让它输出基于 Oracle 的 to_date() 函数的字符串表达式。 五、利用 PreparedStatement 对象提高数据库的总体效率 在使用 PreparedStatement 对象执行 SQL 命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个 PreparedStatement 对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的 SQL 命令,使用 PreparedStatement 对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行 PreparedStatement 任务需要的时间长于 Statement 任务,我会建议在除动态 SQL 命令之外的所有情况下使用 PreparedStatement 对象。 六、在成批处理重复的插入或更新操作中使用 PreparedStatement 对象 如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle 提供的 Statement 和 CallableStatement 不真正地支持批处理,只有 PreparedStatement 对象才真正地支持批处理。我们可以使用 addBatch() 和 executeBatch() 方法选择标准的 JDBC 方法来实现批处理操作。 在 Java 操作 Oracle 数据库时,我们可以通过使用 Thin 驱动程序、关闭自动提交功能、使用 Statement 对象、利用 helper 函数对动态 SQL 命令进行格式化、使用 PreparedStatement 对象提高数据库的总体效率、在成批处理重复的插入或更新操作中使用 PreparedStatement 对象等技巧来提高系统的性能和实现更多的功能。
- 粉丝: 1w+
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助