版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、神通数据库是神舟通用数据技术开发的数据库管理系统软件。神通数据库的归神舟通用数据技术,任何的行为将神舟通用数据技术法律责任。所有。以神通数据库数据库 JDBC 开发指南的归神舟通用数据技术的准许,不得将本手册的、采用任何(电子的或机械的,包括照相或录制)、或为任何目的,进行或扩散。(c)Copyright 2010神舟通用数据技术。所有,翻制。神舟通用数据技术册中的缺陷所造成的任何损失负责。不对因为使用该软件、用户手册或由于该软件、用户手前言JDBC(Java Database Connectivity)表示Java 数据库连接,由一组用 Java 编程语言编写的类和接口组成。JDBC 为 J
2、ava 程序关系型数据库提供了编程接口,为数据库开发提供了一个标准的 API,使他们能够用 Java API 来编写数据库应用程序,而不必为库编写不同的程序。不同数据随着 J2SE 版本的不断发展,JDBC 规范也不断完善。发展到目前为止,JDBC 规范已经发到 3.0 版本。该版本相对于以前的 2.0 版本又提供了很多新的特性,比如保存点、参数信息、多结果集、自动生成键等。计划的神通数据库 JDBC 驱动程序基本实现了 JDBC3.0 规范,尤其针对 JDBC3.0 规范中的新增特性,给出了很好的支持。对于这些新的特性的支持,为用户提供了更为方便的编写数据库应用程序的方法,使得用户编写应用程
3、序将更加高效,编写的应用程序也更加健壮。本手册结合神通数据库的特点,介绍了 JDBC 的基本概念和基本技术,帮助用户更好地学习和使用神通数据库。本手册适用于所有神通数据库的用户。阅读指南阅读对象本手册的阅读对象为神通数据库用户,用户若对 JAVA 语言和数据库基本概念有一定了解,将对本手册的理解有很大的帮助。内容简介通过本手册了解 JDBC 的基本概念和基本技术,帮助用户更好地学习和使用神通数据库。本手册适用于所有神通数据库的用户。手册构成本手册由 14 部分组成:第 1 章,“概述”,简单介绍 JDBC Driver 和神通数据库 JDBC Driver。第 2 章,“神通数据库 JDBC
4、Driver 的安装与配置”,介绍神通数据库 JDBC 驱动的两种安装方法。第 3 章,“神通数据库 JDBC 快速入门”,介绍了如何使用神通数据库 JDBC Driver 以及如何处理由 JDBC 抛出的异常。第 4 章,“神通数据库 JDBC 驱动对于 JDBC 规范的支持”,主要介绍神通数据库 JDBC驱动实现了 JDBC3.0 规范中的哪些接口。第 5 章,“执行 SQL 语句和处理结果集”,本章介绍了如何利用 Statement 对象和PreparerStatement 对象执行 SQL 语句和处理结果集。第 6 章,“执行和 INOUT 参数。过程”,本章介绍了 CallableS
5、tatement 对象的创建执行以及 IN、OUT第 7 章,“执行大容量导入”,介绍了大容量普通导入、文本导入和文本导出接口等。第 8 章,“结果集(ResultSet)的特性”,介绍了对结果集的更新等。第 9 章,“MetaData 信息”,介绍了在 JDBC 驱动中,专门提供相应的 MetaData 信息的三个接口的使用方法。,如创建、处理、第 10 章,“大对象”,介绍了如何 BLOB 和 CLOB 两个接口中的所有方法。第 11 章,“批处理”,介绍了 Statement、PreparedStatement 和 CallableStatement 三对象如何使用批处理更新方式。第 1
6、2 章,“事务特性”,主要介绍了事务机制的特性和使用方法。第 13 章,“标量函数”,主要介绍各种标量函数的使用方法。第 14 章,“数据源(DataSource)”,主要介绍了数据源的使用方法。第 15 章,“应用实例程序”,主要本章给出了两个应用实例,分别对应于单线程和多线程。相关文档使用本手册时可以参考神通数据库的手册集,手册集包含以下文档:神通数据库安装手册神通数据库备份恢复工具使用手册神通数据库 DBA 管理工具使用手册神通数据库系统管理员手册神通数据库SQL 语言手册神通数据库交互式 SQL神通数据库过程语言手册工具使用手册神通数据库 OLEDB/ADO 用户手册神通数据库迁移工具
7、使用手册神通数据库审计管理指南神通数据库 ODBC 程序员开发指南神通数据库 SQL 语言参考手册神通数据库审计工具使用手册神通数据库性能监测工具使用手册神通数据库作业调度工具使用手册手册约定本手册遵循以下约定:1.2.所有标题均使用黑体字。如果标题后跟有“条件”字样,说明该标题下正文所要求的内容只是在一定条件下必须的。【注意】的意思是请读者注意那些需要注意的事项。【警告】的意思是请读者千万注意某些事项,否则将造成严重错误。【提示】的意思是提供给读者一些实用的操作技巧。对于手册中出现的正文和程序代码,遵循如下约定:表 0-1 手册正文约定表 0-2 手册中出现的程序代码的书写约定约定含义范例表
8、示包含一个或者多个可选项。不需要输入中括号本身。DECIMAL (digits , precision )约定含义范例粗体表示强调确保控制文件和数据文件不要驻留在同一个磁盘上。大写等宽字母表示由系统提供的元素,如参数、权限、数据类型、 、命令、函数名,以及由系统提供的列名、数据库对象和结构等。利用 BACKUP 命令备份数据库。在 USER_TABLES 数据字典视图中TABLE_NAME 列小写等宽字母表示执行程序、文件名、目录名以及需要由使用者提供的元素,包括计算机名、数据库名、数据库对象和结构、列名、程序单元以及参数等。【注意】:某些元素要求使用大写或者大小写混合形式。此时,应当根据实际
9、的要求输入。department_id, department_name 以及location_id 列在 departments 表中。小写等宽斜体表示占位符或者变量表示包含两个以上(含两个)的选项,其中有一个是必须的。不需要输入花括号本身。ENABLE | DISABLE|分割中括号或者花括号中的两个或者两个以上的选项。不需要输入“|”本身。ENABLE | DISABLE COMPRESS |PRESS表示省略表示重复CREATE TABLE AS subquery; SELECT col1, col2, , coln FROM employees;.表示省略了若干行斜体表示占位符或者需
10、要提供特定值的变量CONNECT SYSTEM/system_password DB_NAME = database_name大写表示系统提供的元素,主要是为了与使用者定义的元素相互区分。除了出现在方括号中的元素外,应当按照顺序逐字输入。当然,有些元素在系统中是大小写不敏感的,因此使用者也可以根据系统说明以小写的方式输入。SELECT last_name, employee_id FROM employees;SELECT * FROM USER_TABLES;DROP TABLE hr.employees;小写表示由使用者提供的元素。例如: 表、列和文件的名字。【注意】:根据某些具体的要求,
11、 有些由使用者提供的元素可能要 求使用大写或者大小写混合的形 式。此时,应当根据实际的要求输入。SELECT last_name, employee_id FROM employees;CREATE USER tom IDENTIFIED BYa8M9j7目录阅读对象iii内容简介iii手册构成iii相关文档iii手册约定iv第 1 章1.11.2第 2 章2.12.2第 3 章3.1概述1JDBC DRIVER 简介1神通数据库 JDBC DIRVER 简介1神通数据库 JDBC DRIVER 的安装与配置3通过神通数据库安装程序安装驱动程序3手动安装驱动程序3神通数据库 JDBC 快速入门
12、5神通数据库 JDBC DRIVER 的使用.....103.1.11导入 JDBC API 和神通数据库 JDBC DRIVER 包5神通数据库 JDBC 驱动5与数据库建立连接6创建一个 Statement 对象7执行语句,并取得 ResultSet(结果集)对象7处理获得的结果集7关闭 Statement 对象和结果集7改变数据库的数据内容8提交(commit)对数据库做的改变8关闭与数据库的连接8驱动参数配置文件3.53.6第 4 章第 5 章5.1示例:连接、处理结果集10数
13、据类型的.10处理 SQL 异常12神通数据库神通数据库神通数据库JDBC DRIVER 中的 STREAM12JDBC DRIVER 中的过程15JDBC 驱动 对于 JDBC 规范的支持17执行 SQL 语句和处理结果集19Statement..45.1.5创建 Statement 对象19使用 Statement 对象执行 SQL 语句19使用 execute()方法20使用 Statement 对象分区信息方法22关闭 Statement 对象225.2PrepareStatement.25.2.3创建 PreparedStat
14、ement 对象和设置参数22PreparedStatement 对象的使用23获取自动生成键(Auto Generated Key)23第 6 章6.16.2执行过程25创建 CallableStatement25过程的执行2.26.2.3IN 和 OUT 参数26INOUT 参数26命名参数和缺省参数266.3获取过程中多结果集2.2cursor 类型参数27获取多结果集28第 7 章第 8 章第 9 章9.1执行大容量导入29创建 ImportHandler29使用 ImportH
15、andler 执行普通大容量导入29关闭 ImportHandler 对象29使用 ProviderImportHandler 执行大容量文本导入29使用 ExportHandler 执行大容量导出30大容量分发导入导出接口 COPYIN 和 COPYOUT30导出导入 BinLog 日志33创建 ExportBinlogHandler33使用 ExportBinlogHandler 导出 BinLog 日志33关闭 ExportBinlogHandler 对象33创建 ImportBinlogHandler33使用 ImportBinlogHandler 导入 BinLog 日志34关闭 I
16、mportBinlogHandler 对象34结果集(ResultSet)的特性35概述3.29.1.3ResultSet Types35ResultSet Concurrency35ResultSet Holdability369.29.3创建可滚动(scrollable)和可更新(updatable)的结果集36和处理可滚动的结果集3.2移动游标的方法36检查当前游标位置的方法379.4更新结果集3.29.4.3执行操作38执行删除操作38执行更新操作389.59.6设置结果集大小39内部更新和外部更新对结果集的影响3
17、.2内部更新39外部更新40第 10 章第 11 章11.1MetaData 信息41DatabaseMetaData41ResultSetMetaData41ParameterMetaData42大对象43BLOB43.211.1.311.1.411.1.511.1.6创建 BLOB43BLOB43获取 BLOB43操作 BLOB 的数据44删除 BLOB45BLOB 应用程序示例4511.2CLOB47.211.2.311.2.411.2.511.2.6创建 CLOB47CLOB47获取 CLOB48操作 CLOB48删除 C
18、LOB49CLOB 应用程序示例50第 12 章12.1批处理53Statement 中的批处理5312.1.1OscarStatement 的异步批处理5312.212.312.4第 13 章第 14 章14.414.5第 15 章15.115.2第 16 章16.116.2第 17 章第 18 章第 19 章第 20 章PreparedStatement 中的批处理53CallableStatement 中的批处理54批处理中的异常处理54事务特性55提交模式55级别55保存点(savepoint)55标量函数57数量
19、函数(Numeric Functions)57字符串函数(String Functions)58时间和日期的函数(Time and Date Functions)58系统函数(System Functions)59转换函数(Conversion Functions)59数据源(DataSource)60DataSource60DataSource 和 JNDI61JDBC 分发器63读写分离类型的语句分发63JDBC 分发器的使用63应用实例程序64单线程实例64多线程实例65传输数据压缩实例68A 神通数据库 JDBC DRIVER 错误信息71B 常见问题回答(FAQ)73C 参考资料74
20、第1章 概述1.2.JDBC DRIVER 简介神通数据库 JDBC DRIVER 简介1.1JDBC DRIVER 简介JDBC(Java Database Connectivity)是由美国 SUN Microsystems 公司制定的,可以在 java 平台中用于连接关系数据库的标准接口。JDBC 接口是基于 X/OPEN SQL CLI,它为 java 语言和关系数据库提供了一个抽象的中立的平台,为数据库厂商及第中间件厂商实现与数据库的连接提供了标准方法。当用户使用的数据库服务器进行更换时,不需要改变上面的任何应用程序,只需要更换各厂商的数据库服务器和该数据库服务器的 JDBC 驱动程
21、序,就能实现了整个平台的移植。使用 java 语言编写的应用程序,通过使用该标准接口,可以执行各种SQL 语句,获得结果集,改变数据库内的数据和状态。到目前为止,JDBC 最新的版本是 3.0。JDBC3.0 API 分布在两个 java.sql.和 javax.sql 包里。如果用户需要使用 JDBC 中的某些类或者接口,请将该接口 import 到应用程序。关于类和接口的具体分布,请参考 JDBC3.0 规范和 JAVA2 SDK DOCUMENT。1.2神通数据库 JDBC DIRVER 简介目前比较常见的 JDBC 驱动程序可分为以下四个种类: 类型 1:JDBC-ODBC Bridg
22、e这种类型的 JDBC,是通过调用 ODBC 驱动来达到与数据库连接的目的,其实就是在ODBC 上封装了一层 JDBC,便于 JAVA 语言的应用程序调用。这种类型的 JDBC 驱动会导致性能的下降,因为 JDBC 要调用 ODBC 驱动才能连接数据库;而且 ODBC 驱动必须安装在客户端。类型 2:Native-API/partly java driver这种类型的 JDBC,是通过直接调用特定数据库所提供的接口,来实现和数据库的连接。这种驱动不具有可移植性的特点,大大破坏了 JAVA 语言的优势,而且要求那些接口必须安装在客户端。类型 3:Net-protocal/all-java dri
23、ver这种类型的 JDBC,是在 JDBC 驱动和数据库中间加了中间层,JDBC 驱动通过标准的网络协议将请求传给中间层,然后中间层对请求成可以调用特定数据库系统的请求来实现和数据库系统的交互。这种 JDBC 驱动程序是完全使用 JAVA 语言编写的,实现了跨平台的功能,但是,由于中间层需要对请求进行,不可避免的会增大数据交互时间,影响性能。类型 4:Native-protocal/all-java driver这种类型的 JDBC,通过和数据库系统约定的网络协议,直接将请求发到数据库系统,达到与数据库系统交互的目的。这种 JDBC 驱动是完全适用 JAVA 语言编写,实现了跨平台的功能,而且
24、不需要中间层的,直接同数据库交互,提供了良好的性能。神通数据库 JDBC DRIVER 属于第四类 JDBC Driver,即纯 Java 驱动程序。使用神通数据库的网络协议把 JDBC API 调用转换成直接网络调用,而不需用任何的中间部件。本驱动满足 JDBC 3.0 标准的大部分要求。神通数据库 JDBC DIRVER 的环境神通数据库 JDBC DIRVER 基于 JDK1.4(即 J2SE1.4),与 JDBC3.0 标准相兼容,支持JDBC3.0 标准的大部分要求。因此在使用神通数据库 JDBC DRIVER 之前,请用户确保已经安装了 JDK1.4 或者更高的版本。第2章 神通数
25、据库 JDBC DRIVER 的安装与配置安装神通数据库 JDBC DIRVER 有两种方法,用户既可以通过神通数据库安装程序来安装和配置神通数据库 JDBC DRIVER,也可以通过手动方式来安装和配置神通数据库 JDBC DRIVER。2.1通过神通数据库安装程序安装驱动程序运行神通数据库安装程序(服务器或者客户端安装)时,可以同时安装神通数据库的 JDBC DRIVER,它会被安装到神通数据库安装目录的 jdbc 目录下,例如在 Windows 平台下,将神通数据库安装到 C: ShenTong 的目录下, 则神通数据库 的 JDBC 驱动 oscarJDBC.jar 被安装到 C: S
26、henTongjdbc 目录下,会有一个环境变量 SZ_OSCAR_HOME 指向的安装目录;同样, 在 Solaris/Linux 平台下执行安装程序, 也会在 jdbc 文件夹下安装 oscarJDBC.jar。2.2手动安装驱动程序如果用户没有运行神通数据库安装程序,那么就可以通过手动方式来安装驱动程序。在 Windows 平台下,用户只需从神通数据库安装目录中的 jdbc 目录下将 oscarJDBC.jar文件手动拷贝到某个目录下,例如拷贝到 c:jdbc 目录下,然后在 CLASSPATH 中添加c:jdbcoscarJDBC.jar。可以通过先右击电脑,点击属性,然后选定高级页,
27、在环境变量中将 c:jdbcoscarJDBC.jar 添加到 CLASSPATH 中( 如果没有 CLASSPATH 该项, 请创建CLASSPATH);也可以在命令行中输入“set CLASSPATH .;c:jdbcoscarJDBC.jar”来配置驱动程序的路径。在 Solaris/Linux 平台下,同 Windows 平台一样,用户首先需要将神通数据库安装目录中的 jdbc 目录下将 osarJDBC.jar 拷贝到某个目录下,然后设置环境变量。可以通过输入命令“export CLASSPATH=.神通数据库 JDBC 驱动的路径”来配置驱动程序。另外如果用户嫌上述配置方法太麻烦,
28、可以直接将 oscarJDBC.jar 文件拷贝到用户所装的 JVM的 libext 目录下,就直接可以使用该驱动程序了。当然用户也可以在运行 java 应用程序时直接在命令行上指定驱动程序的路径。例如:javaclasspath OSCAR JDBC 驱动的路径 MyApplication。具体使用方法请参考 SUN Microsystems公司的JAVA2 SDK DOCUMENT。第3章 神通数据库 JDBC 快速入门.5.6.神通数据库 JDBC DRIVER 的使用示例:连接、数据库类型的处理 SQL 异常、处理结果集神通数据库 JDBC DRIVER 的 STREAM
29、神通数据库 JDBC DRIVER 的过程3.1神通数据库 JDBC DRIVER 的使用本节主要介绍应用程序如何使用神通数据库 JDBC 驱动来数据库服务器。当使用神通数据库 JDBC 驱动的时候,用户必须在应用程序里设置一系列关于驱动程序的信息。本节将按照步骤来描述如何使应用程序连上神通数据库,并从数据库中获取和数据。这里只是对神通数据库 JDBC 驱动和 JDBC API 做了一个简单的介绍,在后面的章节将会做更加详细的介绍。要使应用程序(客户端)连接上数据库服务器,并从数据库服务器中据,通常需要以下几个步骤:数据或修改数...1导入 JDBC
30、 API 包(package)和神通数据库 JDBC DRIVER 包神通数据库 JDBC 驱动与数据库建立连接创建一个 Statement 对象执行语句,并取得 ResultSet(结果集)对象处理获得的结果集关闭结果集和 Statement 对象改变数据库的数据内容提交(commit)对数据库做的改变关闭与数据库的连接导入 JDBC API 和神通数据库 JDBC DRIVER 包不管使用哪个厂家的驱动程序,或者哪种类别的驱动程序,只要应用程序需要连接上数据库,就应当在应用程序的开始处导入 JDBCAPI 包importjava.sql.*; importjavax.sql.*;当用户还需
31、要使用神通数据库这个包主要用于 JDBC 的API这个包主要用于 JDBC 的扩展 APIJDBC 驱动所提供的扩展功能时,就需要导入该扩展功能相应的包了,例如:要创建一个 BLOB 大对象,就需要导入神通数据库 JDBC DRIVER 包importcom.oscar.jdbc3.*;包含了创建 BLOB 大对象所需要的类其他神通数据库 JDBC 驱动所提供的扩展功能,以及需要导入哪个相应的包,会在后面文档中加以说明。3.1.2神通数据库 JDBC 驱动如果需要使用神通数据库 JDBC 驱动就必须在应用程序中该驱动。对于所有的 JDBC驱动,都有一个引导驱动程序,并使驱动程序可以运新的类,在
32、神通数据库 JDBC 驱动中, 就是 com.oscar.Driver 类。在试图与数据库连接的时候,必须首先装入、初始化该类。有三种方法可以神通数据库 JDBC 驱动。1.调用 Class.forName()方法通过调用方法 Class.forName()可以显式地加载驱动程序。对于神通数据库,要用:这样将装载驱动,并在装载的同时,驱动自动自我。【注意】:如果找不到指定的驱动时,forName() 方法将抛出 ClassNotFoundException 异常, 所以如果驱动无法获得时需要捕获它。2.在 DriverManager 中进行通过调用 DriverManager.register
33、Driver()方法,就可以在 registerDriver()方法中设置的驱动程序,对于神通数据库,就是 DriverManager.registerDriver(new com.oscar.Driver()。3.把驱动作为参数传给 JVM把驱动作为参数传递给 JVM 启动时传递给它,使用-D 参数比如:java Djdbc.drivers=”com.oscar.Driver” MyApplication在这个例子里,JVM 将试图把驱动作为它的初始化的一部分装载。相对于前两种方法,这种方法更好,因为它允许代码用于其他数据库,而无需重新编译代码,唯一要修改的东西是 URL。当代码试图打开一个
34、 Connection, 而收到一个抛出的 No driver available SQLException时,这可能是因为驱动不在 class path (类路径)里,或者参数值不正确。3.1.3 与打开一个与数据库建立连接数据库的连接,需要调用 DriverManager.getConnection()方法。通过调用该方法,可以取得一个 Connection 类的实例(Instance),这个实例就在应用程序和数据中建立了接,使用这个连接,我们就能操作数据库了。要得到 Connection 的实例,就需要应用程序输入用户名、神通数据库 JDBC 驱动特定的连接语句以及想要连接的数据库名字。
35、用户将有两种连接方法来与数据库建立连接。1.指定数据库的 URL、用户名和下面这个方法用 URL、用户名、作为参数:URL 的格式是:其中:比如想要连接数据库,它的 URL、用户名、分别是:那么就可以很容易的获得一个与数据库的连接了这就意味着用户通过用户名”SYSDBA”, 据库。”SYSDBA”连接到了本地的“SYSTEM”数2.指定数据库的 URL 和 Properties 对象Connection con = DriverManager.getConnection(url,name,password);String url = “jdbc:oscar:/localhost/SYSTEM”
36、; String name = “SYSDBA”;String password = “SYSDBA”;参数参数说明host服务器的主机名。port服务器的端。 缺省时是神通数据库标准的端(2003)database数据库名。此处的数据库名就是在安装时创建的数据库所对应的名字jdbc:oscar:/host/database jdbc:oscar:/host:port/databasegetConnection(String URL, String user, String password);Class.forName("com.oscar.Driver");指定 URL
37、 的方法同上面一样,现在我们就来指定 Properties 对象:现在就可以获得连接了:注:为了适应低带宽的需求, 神通数据库支持传输压缩功能,可以通过设置compressTransfer 属性为 true 的方式开启通信传输压缩功能。3.1.4 创建一个 Statement 对象一旦连接上了数据库,也就是说,已经获得了一个 Connection 的实例,那么就可以通过该 Connection 实例创建一个 Statement 对象。通过 Statement 对象来处理不同的 SQL 语句。我们就用前面获得的Connection 实例con 来创建一个Statement 对象,下面就是一个创建
38、Statement 对象的例子:这个操作是完全遵循 JDBC 标准规范的,没有任何要处理关于特定神通数据库 JDBC 驱动的地方。3.1.5 执行语句,并取得 ResultSet(结果集)对象如果需要 数据库中的数据,只需要调用 Statement 对象的executeQuery()方法。这个方法以 SQL 语句作为参数,方法执行完后返回一个 JDBC 的ResultSet 对象。为了保持连续性, 我们就使用上面已经创建的 Statement 对象。比如我们要从一张表名为 TEMP 的表中选出所有数据,我们只要简单的调用 executeQurey()方法:同上面一样,这个操作也是完全遵循 JD
39、BC 标准规范的,没有任何要处理关于特定神通数据库 JDBC 驱动的地方。注:假如我们已经在神通数据库中创建了一个名为 TEMP 的表,它有两列分别为 ID(INT), VALUE(VARCHAR)。后面的章节将多次使用到这个表。3.1.6 处理获得的结果集一旦执行了SQL 语句,获得了ResultSet 对象,那么就可以通过调用Resulset 对象中的next()操作遍历 ResultSet 操作,以获得每条。如果 next()方法返回为 true,那么就意味着现在有可以出来,接着就可以调用 ResultSet 对象的 get()方法来取得对应列的值,代表了要取得的列的类型,该方法是以列序
40、号或列名为参数的,下面就从上面获得的 ResultSet对象中取得数据:在这里 TEMP 表中第二列的类型 VARCHAR,所以我们使用了 rs 对象的 getString()方法, 关于数据库类型和前台 JDBC 的类型的对应关系,我们会在后面的章节中加以说明。当然这里也可以通过调用 rs.getString(paramName)来获得值。这个方法也是遵循 JDBC 标准的。如果一直向下做遍历,当没有的时候,next()就会返回 false。3.1.7 关闭 Statement 对象和结果集当不再需要使用 Statement 和Resultset 数据之后,就必须显式的关闭已经创建的 Sta
41、tement对象。JDBC 驱动程序没有自动地这些对象的功能,应用程序必须显式的调用 Statement的 close()方法和 ResultSet 的 close()方法。一旦已经显式的关闭了已经创建的对象,就不能再使用这些对象了。如果已经不再使用某些 Statement 对象和Resultset 对象,但是却不去它,while (rs.next()System.out.println(rs.getString(2);ResultSet rs = stmt.executeQuery(“SELECT * FROM TEMP”);Statement stmt = con.createStatem
42、ent();Connection con = DriverManager.getConnection(url,info);java.util.Properties info = new java.util.Properties(); info.setProperty(“user”,”SYSDBA”); info.setProperty(“password”,”SYSDBA”);那将会造成严重的内存泄漏。如果创建了大量的 Statement 和 ResultSet 对象,但是却不它们,应用程序可能最终会造成 OUT OF MEMORY 的后果。比如应用程序中的 Statement 对象是stmt
43、,ResultSet 对象是 rs,就可以这样关闭它:当把 stmt 先关闭的时候,神通数据库 JDBC 驱动会将由它创建的 rs 自动地关闭。当然关闭已经被关闭的 rs 和 stmt 对象的 Connection 仍然与对象。造成任何错误。虽然关闭了 Statement 对象时,创建该 Statement数据库保持连接,应用程序仍然可以用它创建其他的 Statement3.1.8 改变数据库的数据内容用户不仅可以从数据库中数据,也可以往数据库数据,修改数据。可以简单的用上面已经创建的 Statement 对象(假设它还没有关闭),来一条。下面这个例子就是向 TEMP 表中一条:当然用户也可以
44、改变表中的内容,比如:3.1.9 提交(commit)对数据库做的改变对于缺省情况下,DML 操作(INSERT,UPDATE,DELETE)一旦被执行,将自动被提交。这就是 JDBC 驱动中的自动提交(mit)模式。当然可以自己来改变 commit 模式,比如需要执行多条语句,这些语句要求在一个事务里面,那么这时候就必须改变mit 模式了。可以通过调用 Connection 对象的mit()方法来改变 commit 模式。mit 模式,然后就可以执行多条语句了。比如、3 条上述方法,就将关闭了。当执行完上述 SQL 语句之后,千万别忘了 commit 一把:如果想回退事务,就需要 rollb
45、ack 了:注意:如果一旦将 commit 模式改变了,那么现在的 commit 模式将一直不变,直到再次改变 commit 模式。比如将mit 模式给关闭了,那么执行完 SQL 语句后,就必须自己显式的去执行 commit()或 rollback()操作。关于事务的详细介绍,将在事务这一章中给出。3.1.10 关闭与数据库的连接最后,当不再需要与数据库的连接时,就需要关闭 Connection 对象。调用 Connection 的close()方法,就会关闭连接,网络上的。关闭了 Connection 对象,同时也会关闭由它创建的 Statement 对象,这些 Statement 对象co
46、n.close();con.rollback();mit();String sql = “INSERT INTO TEMP VALUES(1,value1)”;stmt.executeUpdate(sql);sql = “INSERT INTO TEMP VALUES(2,value2)”;stmt.executeUpdate(sql);sql = “INSERT INTO TEMP VALUES(3,value3)”;stmt.executeUpdate(sql);mit(false);String sql = “UPDATE TEMP SET ID = 10 WHERE ID = 1”;s
47、tmt.executeUpdate(sql);String sql = “INSERT INTO TEMP VALUES(1,value1)”;stmt.executeUpdate(sql);rs.close();stmt.close();不能再执行 SQL 语句了。3.1.11 驱动参数配置文件# batchbuffersie :batch 接口缓冲区大小,为 K, #MAX: 1048576, MIN: 1, DEFAULT:128batchbuffersize=128# loglevel:日志级别,分为:0,1,2,3,4 四级,0 表示不打印日志,1 表示 SQL #语句级,2 表示调
48、用接口级,3 表示轻量协议级,4 表示详细协议级。loglevel=0#logFilePath:日志文件路径,logFilePath 为空时,JDBC 日志文件与 JDBC 驱动在同一目录下logFilePath=c:/log# maxFileSize:日志文件最大大小,为 MB,达到最大大小后,会使用新的日志#文件maxFileSize=100#numericKeepPrecision:编码方式,对应的SEND_FLOATINGNUMBER_KEEP_PRECISION #参数,分为 true 和false。true 表示使用字符串形式处理数字类型数据,false 表示使用新的处理方#式,默
49、认为 truenumericKeepPrecision=true#netDataByStr: 是否使用协议编码方式,对应的NET_DATA_BY_STR 参数,分为 true 和 false。#rue 表示使用字符串编码方式,false 表示使用协议编码方式,默认为 falsenetDataByStr=false#prepareCacheSize:preparedStatement 缓存,当 prepareCacheSize>0 时,#该功能将启用,缓存中#preparedStatement 个数为prepareCacheSize 个prepareCacheSize=0#REQUESTT
50、IMEOUT:网络请求超时时间,ms,超过此时间服务器无反应,JDBC 会自动ping #一下服务器,如果服务器未断开,则继续等待,否则返回错误REQUESTTIMEOUT=0#notRealPrepare:不使用 prepare,prepare 操作将走 prepare 接口,走的是 query 接口,直接#语句,true 或 false notRealPrepare=false#stmtRollback:语句级回滚,true 或 false,默认为 true stmtRollback=false#compatible_old_protocol,是否使用老协议与交互compatibleOld
51、Protocol=false#fetchSize, 一次从数据库获取的结果集行数#MAX: 5000, MIN: 0, DEFAULT: 16fetchSize=16#prepare_simple_execute,不带参数的 prepare 语句是否可以直接走query 协议执行 sql 语句#DEFAULT: TRUEprepareSimpleExecute=true#batchCount,批处理异步方式每次的行数batchCount=0#useAsynBatch,批处理是否使用异步方式数据,该参数为 true 时,batchCount 的值才会生效参数配置文件默认名称为 oscarconf
52、perties,与 JDBC 驱动包在同一路径下。也可在 url中用 CONFIGFILE 参数指定。3.2示例:连接、处理结果集这一节将整合前面的例子,给出一个完整的例子,便于用户参考。3.3数据类型的神通数据库 JDBC 驱动支持大多数由 JDBC3.0 规范所要求的类型。在类型中,我们将讨论 JAVA 类型、JDBC 类型以及对应于 JDBC 类型中的那种,又对应于数据库类型是如何进行相互数据库中的那种类型。的。比如前台的 String表 3-1 是神通数据库数据类型。序号类型描述有效范围1tinyint整型数据-128,1272smallint整型数据-32768, 327673int整型数据-2147483648, 2147483647 import java.sql.*;public class TestJDBC public TestJDBC() public static void main(String args) throws SQLException try Class.forName("com.oscar.Driver");catch (ClassNotFoundException cnfe) System.out.println(cnfe);String name = "SYSD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理知识之健康教育
- 保险客户经理制度
- 企业消防包保制度
- 交通过道制度
- 严格落实双报告制度
- 2026年玉溪市生态环境局华宁分局编外办公辅助(内勤相关)人员公开招聘备考题库完整参考答案详解
- 护理健康科普营养
- 2025至2030中国智能网联汽车数据合规治理法律框架及企业应对策略研究报告
- 远程医疗与用药护理
- 东莞市公安局水上分局麻涌水上派出所2025年第1批警务辅助人员招聘备考题库及1套完整答案详解
- 颈椎间盘突出症的治疗和护理讲课件
- 大学之道故事解读
- 外立面改造项目脚手架施工专项方案
- 2023年全国职业院校技能大赛-生产事故应急救援赛项规程
- 广东省建筑工程混凝土结构抗震性能设计规程
- 切削液回收及处理合同模板
- 2023年移动综合网络资源管理系统技术规范功能分册
- 幼儿园大班班本课程-邂逅水墨课件
- 计算机辅助翻译智慧树知到期末考试答案章节答案2024年西华大学
- HGT 2520-2023 工业亚磷酸 (正式版)
- 阎良现代设施花卉产业园规划设计方案
评论
0/150
提交评论