Java程序的设计-第10章-数据库访问编程技术课件.ppt

上传人(卖家):晟晟文业 文档编号:4091875 上传时间:2022-11-10 格式:PPT 页数:64 大小:232.13KB
下载 相关 举报
Java程序的设计-第10章-数据库访问编程技术课件.ppt_第1页
第1页 / 共64页
Java程序的设计-第10章-数据库访问编程技术课件.ppt_第2页
第2页 / 共64页
Java程序的设计-第10章-数据库访问编程技术课件.ppt_第3页
第3页 / 共64页
Java程序的设计-第10章-数据库访问编程技术课件.ppt_第4页
第4页 / 共64页
Java程序的设计-第10章-数据库访问编程技术课件.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、第第1010章章 数据库访问的编程技数据库访问的编程技术术 在开发企业级业务应用系统的过程中在开发企业级业务应用系统的过程中,需要使用数据库管理系统来存储、,需要使用数据库管理系统来存储、管理企业的业务数据。管理企业的业务数据。JDBCJDBC为在为在JavaJava中开发数据库应用程序提供了良好的中开发数据库应用程序提供了良好的工具,掌握工具,掌握JDBCJDBC能够使得开发人员方能够使得开发人员方便快捷地编写数据库应用程序。便快捷地编写数据库应用程序。10.1 JDBC概述10.1 JDBC概述 JDBC(Java DataBase Connectivity,Java数据库数据库连接连接)

2、是一种可用于执行是一种可用于执行SQL语句的语句的Java API,它为数据库应用开发人员、数据库前台工具开发它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开人员提供了一种标准的应用程序设计接口,使开发人员可以方便地将各种发人员可以方便地将各种SQL语句传送到任何关语句传送到任何关系数据库中。系数据库中。JDBC由一些由一些Java语言编写的类和接口组成。用语言编写的类和接口组成。用户使用这些类和接口就可以用统一的形式访问各户使用这些类和接口就可以用统一的形式访问各种不同的关系数据库,并开发访问不同厂商数据种不同的关系数据库,并开发访问不同厂商数据库的应用程

3、序。库的应用程序。JDBCJDBC的基本结构如图所示。从图中可以的基本结构如图所示。从图中可以看出:顶层是看出:顶层是JavaJava应用程序,它既可以应用程序,它既可以是是AppletApplet应用程序,也可以是独立运行应用程序,也可以是独立运行的的ApplicationApplication应用程序,甚至还可以是应用程序,甚至还可以是服务器端运行的服务器端运行的SeverletSeverlet和和EJBEJB组件等。组件等。其他两层是其他两层是JDBCJDBC接口,分别是面向程序接口,分别是面向程序员的员的JDBC APIJDBC API及面向数据库厂商的及面向数据库厂商的JDBC JD

4、BC Driver APIDriver API。10.1.1 JDBC的基本结构的基本结构JDBCJDBC的基本结构的基本结构 Java应用程序通过应用程序通过JDBC API接口,经由接口,经由JDBC驱动程序管理器、驱动程序管理器、JDBC Driver API和和JDBC驱动程序访问下层的数据库驱动程序访问下层的数据库。JDBC API屏蔽了不同的数据库驱动程屏蔽了不同的数据库驱动程序之间的差异,使得程序设计人员只能序之间的差异,使得程序设计人员只能用一个标准的、纯用一个标准的、纯Java的数据库程序设的数据库程序设计接口,为在计接口,为在Java中访问任意类型的数中访问任意类型的数据库

5、提供支持。据库提供支持。JDBC驱动程序程序管理器为应用程序装驱动程序程序管理器为应用程序装载数据库驱动程序,它与具体的数据库载数据库驱动程序,它与具体的数据库有关,用于向数据库提交有关,用于向数据库提交SQL请求。请求。数据库驱动程序一般是由生产数据库的厂数据库驱动程序一般是由生产数据库的厂家提供。不同的厂商为数据库提供不同的家提供。不同的厂商为数据库提供不同的驱动程序,从而把访问操作数据库的复杂驱动程序,从而把访问操作数据库的复杂操作封装在自己的驱动程序中。例如,数操作封装在自己的驱动程序中。例如,数据库厂商据库厂商OracleOracle为为Oracle10Oracle10数据库提供了数

6、据库提供了不同的驱动程序,但都实现了不同的驱动程序,但都实现了JDBCJDBC接口。接口。对于应用程序开发人员而言,不必关心特对于应用程序开发人员而言,不必关心特定数据库的复杂操作,只需要掌握定数据库的复杂操作,只需要掌握JavaJava提提供的访问数据库的接口,就可以编写访问供的访问数据库的接口,就可以编写访问不同类型的数据库的应用程序。不同类型的数据库的应用程序。10.1.2 JDBC 10.1.2 JDBC 驱动程序驱动程序(1)JDBC-ODBC 桥接器桥接器(Bridge)。它负责将它负责将JDBC调用转换为调用转换为ODBC调用,应用程序是通过调用,应用程序是通过JDBC调用连接到

7、一个使用调用连接到一个使用ODBC驱动程序的数驱动程序的数据库。要求每个客户端都安装上数据库对应的据库。要求每个客户端都安装上数据库对应的ODBC和和JDBC-ODBC Bridge两种驱动程序。两种驱动程序。(2)本地本地API,部分,部分Java驱动程序驱动程序(Native API,partly Java driver)。它是部分使用它是部分使用Java语言编语言编写和部分使用本机代码编写的驱动程序,它将写和部分使用本机代码编写的驱动程序,它将数据库厂商的特殊协议转换成数据库厂商的特殊协议转换成Java代码及二进代码及二进制类码,即把客户端的制类码,即把客户端的JDBC调用转换为调用转换

8、为Oracle、Sybase、DB2或其他或其他DBMS的调用,使的调用,使Java 数据库客户端与数据库服务器端通信。数据库客户端与数据库服务器端通信。10.1.2 JDBC 驱动程序驱动程序 (3)JDBC-Net,纯,纯Java驱动程序。驱动程序。它是纯它是纯Java的驱动程序,通过一定的网络协议与数据库服的驱动程序,通过一定的网络协议与数据库服务器上的务器上的JDBC中间件通信,由中间件程序将网中间件通信,由中间件程序将网络协议指令转换成数据库指令。中间件可支持络协议指令转换成数据库指令。中间件可支持多种数据库,适合具有中间件的分布式应用。多种数据库,适合具有中间件的分布式应用。(4)

9、本地协议,纯)本地协议,纯Java驱动程序。驱动程序。可这类驱动程可这类驱动程序通过实现一定的数据库协议序通过实现一定的数据库协议(如如Oracle公司的公司的SQLNet)能将能将JDBC调用转换为数据库直接使用调用转换为数据库直接使用的网络协议,使的网络协议,使Java数据库客户端直接与数据数据库客户端直接与数据库服务器通信。它不需要安装客户端软件,它库服务器通信。它不需要安装客户端软件,它是是100%的的Java程序,所以其效率很高。程序,所以其效率很高。10.2 JDBC中的主要类和接口 JDBC由一系列的类和接口组成,包括:由一系列的类和接口组成,包括:连接连接(Connection

10、):实现建立与数据库的连接实现建立与数据库的连接 SQL语句语句(Statement):向数据库发起查询请求向数据库发起查询请求 结果集(结果集(ResultSet):):处理数据库返回结果处理数据库返回结果 其中核心的类和接口包含在其中核心的类和接口包含在java.sql包和包和javax.sql包中。表中列出了包中。表中列出了java.sql包中访问数包中访问数据库的重要类和接口及它们的功能说明。据库的重要类和接口及它们的功能说明。访问数据库的重要类和接口访问数据库的重要类和接口类名类名功能说明功能说明java.sql.DriverManager 用于加载驱动程序,建立与数据库的连接。在用

11、于加载驱动程序,建立与数据库的连接。在JDBC 2.0中建议使用中建议使用DataSource接口来连接包括接口来连接包括数据库在内的数据源。数据库在内的数据源。java.sql.Driver 驱动程序接口。驱动程序接口。java.sql.Connection 用于建立与数据库的连接。用于建立与数据库的连接。java.sql.Statement 用于执行用于执行SQL语句并返回结果。它有两个子类:语句并返回结果。它有两个子类:java.sql.PreparedStatement:用于执行预编译的:用于执行预编译的SQL语句;语句;java.sql.CallableStatement:用于执:用

12、于执行对于一个数据库的内嵌过程的调用行对于一个数据库的内嵌过程的调用java.sql.ResultSet 控制控制SQL查询返回的结果集。查询返回的结果集。java.sql.SQLException SQL异常处理类,其父类是异常处理类,其父类是java.lang.Exception。访问数据库的第一步是与数据源建立连访问数据库的第一步是与数据源建立连接,只有建立了连接,才能在数据库和接,只有建立了连接,才能在数据库和应用程序之间移动数据。应用程序之间移动数据。DriverManager类是类是java.sql包中用于数包中用于数据库驱动程序管理的类,用于在数据库据库驱动程序管理的类,用于在数

13、据库和相应驱动程序之间建立连接,也处理和相应驱动程序之间建立连接,也处理像驱动程序登录时间限制、登录和跟踪像驱动程序登录时间限制、登录和跟踪消息的显示等事务。消息的显示等事务。10.2.1 DriverManager类类DriverManager类的主要成员方法类的主要成员方法类、接口或方法名类、接口或方法名功能说明功能说明static void registerDriver(Driver driver)注册数据库驱动程序注册数据库驱动程序static void deregisterDriver(Driver driver)从数据库驱动程序列表中删除指定的数据从数据库驱动程序列表中删除指定的数

14、据库驱动程序库驱动程序static Connection getConnection(String url)创建与指定的数据库创建与指定的数据库url的连接的连接static Connection getConnection(String url,properties info)通过指定的数据库通过指定的数据库url及属性信息创建数据及属性信息创建数据库连接库连接static Connection getConnection(String url,String username,String password)通过指定的数据库通过指定的数据库url及用户名、密码创建及用户名、密码创建数据库连接

15、数据库连接static Driver getDrive(String URL)获取获取url指定的数据库驱动程序指定的数据库驱动程序 DriverManager 对象提供了三种建立数据库连接的对象提供了三种建立数据库连接的方法。每种方法都返回一个方法。每种方法都返回一个 Connection 对象实例,对象实例,区别是它们接收的参数不同。区别是它们接收的参数不同。URL用于指定数据源和用于连接到该数据源的数据用于指定数据源和用于连接到该数据源的数据库的连接类型。其格式如下:库的连接类型。其格式如下:jdbc:其中:其中:jdbc:表示使用的协议是表示使用的协议是JDBC。:驱动程序或者连接机制

16、的名称,可以有一个驱动程序或者连接机制的名称,可以有一个或者多个驱动程序支持或者多个驱动程序支持:数据库的唯一标识符数据库的唯一标识符例如:通过例如:通过JDBC-ODBC桥和数据库的标识符桥和数据库的标识符DBTest来访来访问数据库的问数据库的URL为:为:“jdbc:odbc:DBTest”java.sql.Driver接口规定了所有接口规定了所有JDBC驱驱动程序必须实现的方法。加载或注册一动程序必须实现的方法。加载或注册一个数据库驱动程序,实际上就是创建了个数据库驱动程序,实际上就是创建了数据库驱动程序的一个实例,从而保证数据库驱动程序的一个实例,从而保证Java程序使用统一的形式,

17、通过不同的程序使用统一的形式,通过不同的数据库驱动器访问各种数据库。数据库驱动器访问各种数据库。10.2.2 Driver Driver接口接口 java.sql.Connection是是java.sql包中定义的包中定义的一个接口,其功能是建立与数据库的连一个接口,其功能是建立与数据库的连接。只有成功地建立与数据库的连接,接。只有成功地建立与数据库的连接,才能够创建用于执行才能够创建用于执行SQL语句的语句的Statement对象,进而获取数据库执行对象,进而获取数据库执行SQL语句后返回的结果。语句后返回的结果。10.2.3 Connection10.2.3 Connection接口接口类

18、或接口名类或接口名功能说明功能说明Statement CreateStatement()创建一个创建一个statement对象,它将生成具有对象,它将生成具有特定类型和并发性的结果集特定类型和并发性的结果集void commit()提交对数据库的改动并释放当前连接持提交对数据库的改动并释放当前连接持有的数据库的锁有的数据库的锁void rollback()回滚当前事务中所有改动,释放当前连回滚当前事务中所有改动,释放当前连接持有的数据库的锁接持有的数据库的锁String getCatalog()获取连接对象的当前目录名获取连接对象的当前目录名boolean isClosed()判断连接是否已关

19、闭判断连接是否已关闭void close()立即释放连接对象的数据库和立即释放连接对象的数据库和JDBC资资源源Connection接口的主要成员方法10.2.4 Statement接口接口 StatementStatement是在已经建立的连接的基础上向是在已经建立的连接的基础上向数据库发送数据库发送SQLSQL语句的对象。语句的对象。StatementStatement接口定义了执行接口定义了执行SQLSQL语句和获取语句和获取返回结果的成员方法。它们都作为在给定返回结果的成员方法。它们都作为在给定连接上执行连接上执行 SQL SQL 语句的容器,每个都专用语句的容器,每个都专用于发送特定

20、类型的于发送特定类型的 SQL SQL 语句。由于语句。由于StatementStatement为一个接口,它本身不能被实例为一个接口,它本身不能被实例化,必须通过调用化,必须通过调用ConnectionConnection对象的对象的createStatement()createStatement()方法创建一个方法创建一个StatementStatement对象。对象。SatatementSatatement接口的主要成员方法接口的主要成员方法成员方法名成员方法名功能说明功能说明void close()关闭关闭Statement对象对象int executeBatch()执行多个执行多个S

21、QL语句语句boolean execute(String sql)执行执行SQL语句语句ResultSet executeQuery(String sql)进行数据库查询的进行数据库查询的SQL语句语句int executeUpdate(String sql)进行数据库更新的进行数据库更新的 SQL语句语句Connection getConnection()获取对数据库的连接获取对数据库的连接int getMaxRows()返回数据库结果集最大行数返回数据库结果集最大行数boolean getMoreResults()移动到移动到Statement的下一个结果处,返回多个的下一个结果处,返回多

22、个结果的结果的SQL语句语句int getQueryTimeout()返回查询超时设置返回查询超时设置ResultSet getResultSet()获取结果集获取结果集 Statement 接口提供了接口提供了3种执行种执行SQL语句的方法:语句的方法:(1)executeQuery()方法:方法:执行返回单个执行返回单个ResultSet的的SQL语句,如语句,如SELECT语句。语句。(2)executeUpdate()方法:方法:用于执行用于执行INSERT、UPDATE、DELETE、CREATE TABLE以及以及 DROP TABLE语句返回值是一个整数,表示它语句返回值是一个整

23、数,表示它执行的执行的SQL语句所影响的数据库中的表的行数。语句所影响的数据库中的表的行数。(3)execute()方法:方法:用于执行返回多个结果集或多用于执行返回多个结果集或多个更新计数的语句,它的执行结果可能会产生多个更新计数的语句,它的执行结果可能会产生多个个ResultSet,或者改变多条记录。所以一般只有,或者改变多条记录。所以一般只有在用户不知道执行在用户不知道执行SQL声明后会产生什么结果或声明后会产生什么结果或可能有多种类型的结果产生时才会使用。可能有多种类型的结果产生时才会使用。10.2.5 ResultSet接口接口 结果集结果集ResultSet是用来暂时存放执行是用来

24、暂时存放执行SQL语句语句后产生的结果集合。它的实例对象一般是后产生的结果集合。它的实例对象一般是Statement类的子类通过方法类的子类通过方法execute()或或executeQuery()执行执行SQL语句后产生的,包含有语句后产生的,包含有这些语句的执行结果。这些语句的执行结果。ResultSet类似于数据库中类似于数据库中的表,包含符合查询要求的所有行的表,包含符合查询要求的所有行。ResultSet类提供了一套类提供了一套getXXX()方法对这些行中方法对这些行中的数据进行访问。的数据进行访问。如:如:boolean getBoolean(int columnIndex)、i

25、nt getInt(int columnIndex)等,用于获取当前行中某一等,用于获取当前行中某一列的值,返回相应类型的值。列的值,返回相应类型的值。它还提供了很多移动游标它还提供了很多移动游标(cursor)的方法。的方法。cursor是是ResultSet 维护的指向当前数据行的指针。最初它位维护的指向当前数据行的指针。最初它位于第一行之前,因此第一次访问结果集时通常调用于第一行之前,因此第一次访问结果集时通常调用 next()方法将游标置于第一行上,使它成为当前行方法将游标置于第一行上,使它成为当前行。随后每次调用。随后每次调用 next()使游标向下移动一行。使游标向下移动一行。另外

26、,还提供了另外,还提供了isBeforeFirst()、isAfterLast()、isFirst()、isLast()等方法用于判断游标是否在结果等方法用于判断游标是否在结果集的头部、结果集的末尾、结果集的第一行和结果集的头部、结果集的末尾、结果集的第一行和结果集的最后一行等。集的最后一行等。10.2.6 PreparedStatement接口接口 当使用当使用Statement对象执行对象执行SQL语句时,数语句时,数据库中的据库中的SQL语句解释器首先将语句解释器首先将SQL语句进语句进行编译,生成底层可理解的内部命令,然后行编译,生成底层可理解的内部命令,然后执行。为了减少重复编译执行

27、。为了减少重复编译SQL语句所产生的语句所产生的开销,开销,JDBC提供了提供了PreparedStatement接口接口,由于,由于PreparedStatement语句中包含了经过语句中包含了经过预编译的预编译的SQL语句,因此可以获得更高的执语句,因此可以获得更高的执行效率。特别是当需要反复调用某些行效率。特别是当需要反复调用某些SQL语语句时,使用该接口具有明显的优势。句时,使用该接口具有明显的优势。1、创建、创建PreparedStatement 对于对于JDBC,当使用,当使用Connection与某个数据库建与某个数据库建立了连接对象立了连接对象con后,则后,则con可以调用可

28、以调用PreparedStatement()方法创建方法创建PreparedStatement对象。例如:对象。例如:stmt=con.prepareStatement(SELECT*FROM Student);2、执行、执行PreparedStatement 创建了创建了PreparedStatement对象后,就可以执行对象后,就可以执行它了,调用表它了,调用表10-4所示的成员方法进行各种操所示的成员方法进行各种操作。如:作。如:stmt.executeUpdate();在在PreparedStatement语句中可以包含多个用通配语句中可以包含多个用通配符符“?”代表的字段。在执行之前

29、,必须为在创建代表的字段。在执行之前,必须为在创建PreparedStatement时定义的通配符提供实际的数时定义的通配符提供实际的数据。可以利用据。可以利用setXXX()方法设置该字段的内容,从方法设置该字段的内容,从而增强程序设计的动态性。而增强程序设计的动态性。例如:如果要替换的值是一个例如:如果要替换的值是一个int型,则可调用型,则可调用setInt()方法。基本上可以找到所有方法。基本上可以找到所有Java类型的类型的setXXX()方法。方法。setXXX()方法的第一个参数指定要方法的第一个参数指定要替换的占位符的索引替换的占位符的索引(索引从索引从1开始开始)。通配符在预

30、。通配符在预处理处理SQL语句中从左到右依次出现的顺序分别称为语句中从左到右依次出现的顺序分别称为第第1个,第个,第2个个第第m个通配符。个通配符。10.2.7 CallableStatement接口接口 CallableStatement接口继承了接口继承了PreparedStatement接口,用于执行对数据接口,用于执行对数据库存储过程的调用。它提供了库存储过程的调用。它提供了gettXXX()方方法获取某字段的内容。如果要获取的值是法获取某字段的内容。如果要获取的值是一个一个int型,则可调用型,则可调用getInt()方法。方法。setXXX()方法的第一个参数指定要替换的占方法的第

31、一个参数指定要替换的占位符的索引位符的索引(索引从索引从1开始开始)。通配符在预处。通配符在预处理理SQL语句中从左到右依次出现的顺序分语句中从左到右依次出现的顺序分别称为第别称为第1个,第个,第2个个第第m个通配符。个通配符。1、创建、创建CallableStatement 对象对象CallableStatement对象是用对象是用Connection接口接口的的prepareCall()方法创建的。例如:方法创建的。例如:CallableStatement cstm=con.prepareCall(call getTestData(?,?);其中被调用的存储过程的名字为其中被调用的存储过程

32、的名字为getTestData。该存储过程有两个变量,但。该存储过程有两个变量,但不含结果参数。不含结果参数。“?”通配符为通配符为IN、OUT或或INOUT参数,参数,取决于存储过程本身。取决于存储过程本身。在在JDBC中调用存储过程的语法如下:中调用存储过程的语法如下:call 过程名过程名:不带参数的存储过程的调用不带参数的存储过程的调用。call 过程名过程名(?,?,.):需要若干参数的存需要若干参数的存储过程的调用。储过程的调用。?=call 过程名过程名(?,?,.):需要若干参数并需要若干参数并返回结果参数的存储过程的调用。返回结果参数的存储过程的调用。2、执行、执行Calla

33、bleStatement 对象对象创建创建CallableStatement 对象后,就可以调用其相关成员对象后,就可以调用其相关成员方法完成所需的操作。例如:方法完成所需的操作。例如:try CallableStatement cstm=con.prepareCall(call getStudentID(?,?);cstm.setString(1,06070010);/向存储过程传递参数向存储过程传递参数 cstm.registerOutParameter(2,Type.REAL);/如需存储过如需存储过程返回结果,需先调用程返回结果,需先调用registerOutParameter()方法

34、设置方法设置输出参数类型输出参数类型 cstm.executeQuery();float x=cstmt.getFloat(1);/用用get方法获取执行结果方法获取执行结果catch(SQLException e)10.3 JDBC 10.3 JDBC 访问数据库的访问数据库的基本过程基本过程 利用利用JDBC访问数据库需要经历下面几访问数据库需要经历下面几个基本步骤:个基本步骤:(1)注册数据源;注册数据源;(2)加载加载JDBC驱动程序;驱动程序;(3)创建数据库连接;创建数据库连接;(4)创建创建Statement;(5)执行执行Statement;(6)处理查询结果集;处理查询结果集

35、;(7)关闭数据库连接。关闭数据库连接。一、注册一、注册ODBCODBC数据源数据源 在创建数据库连接之前,必须要先创建在创建数据库连接之前,必须要先创建数据源。下面以数据源。下面以Windows XP为例说明注为例说明注册册ODBC数据源的过程。我们要把一个数据源的过程。我们要把一个Oracle 10i的数据库的数据库Student注册为一个注册为一个ODBC数据源,命名成数据源,命名成DBTest。注册步骤如下:注册步骤如下:1在在Windows XP中选择中选择“控制面板控制面板”、“性能和维护性能和维护”、“管理工具管理工具”和和“数据源(数据源(ODBC)”,弹出如图所示的,弹出如图

36、所示的“ODBC数据源管理器数据源管理器”对话框。对话框。2单击其中的某个驱动程序,或者选择单击其中的某个驱动程序,或者选择“用户用户DSN”选项卡,然后单击选项卡,然后单击“添加添加(D)”按钮,弹出如图所示的按钮,弹出如图所示的“创建新创建新数据源数据源”对话框。对话框。在这个对话框中,选择在这个对话框中,选择Oracle公司提供公司提供的驱动程序的驱动程序Oracle OraDb10g_home1(如果要创建其他数据库的数据源,例如如果要创建其他数据库的数据源,例如Microsoft SQL Server 或或Microsoft Access数据库的数据源,可以在数据库的数据源,可以在“

37、创建创建新数据源新数据源”对话框中选择对话框中选择SQL Server或或Microsoft Access驱动程序)。驱动程序)。3 3单击单击“完成完成”按钮,出现如图所示的按钮,出现如图所示的“Oracle ODBC Driver Configuration”Oracle ODBC Driver Configuration”对话框。对话框。在图示的对话框中的在图示的对话框中的“Data Source Name”(数据源名)输入框中输入数据源(数据源名)输入框中输入数据源的名字(如:的名字(如:DBTest),该名字将被用来),该名字将被用来在在Java程序中建立与数据库的连接。程序中建立与

38、数据库的连接。可以在可以在“服务器服务器”(TNS Server Name)输入框中输入相应的数据库服务器的名称输入框中输入相应的数据库服务器的名称或者或者IP地址(如:地址(如:MyServer),然后单击),然后单击“Test Connection”按钮,以测试连接是按钮,以测试连接是否可用。测试成功后,否可用。测试成功后,Java程序才能够通程序才能够通过过JDBC访问该数据源。访问该数据源。在访问数据库之前,必须将在访问数据库之前,必须将JDBC驱动程序驱动程序加载到加载到Java虚拟机中。加载驱动程序有两种虚拟机中。加载驱动程序有两种基本方法:基本方法:(1)使用)使用DriverM

39、anager 类类的静态方法的静态方法registerDriver加载;加载;(2)使用)使用 java.lang.Class类类的的forName 方方法加载。法加载。二、加载二、加载JDBCJDBC驱动程序驱动程序 使用使用DriverManager类加载类加载Oracle JDBC驱动程序的驱动程序的Java代码如下:代码如下:DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver();如果加载的驱动程序不存在,就会出现如果加载的驱动程序不存在,就会出现异常,此时需要应用程序对这种异常进异常,此时需要应用程序对这种

40、异常进行处理。行处理。1)加载)加载Oracle JDBC驱动程序驱动程序 使用使用 java.lang.Class类加载类加载Oracle JDBC驱驱动程序的动程序的Java代码如下所示:代码如下所示:Class c=Class.forName(oracle.jdbc.driver.OracleDriver);如果加载的的驱动程序不存在,如果加载的的驱动程序不存在,Class.forName()方法将会抛出方法将会抛出ClassNotFoundException 异常。此时同样异常。此时同样需要应用程序处理异常。需要应用程序处理异常。2)加载)加载Microsoft SQL Server

41、JDBC驱动程序驱动程序 用用DriverManager类加载类加载Microsoft SQL Server JDBC驱动程序的驱动程序的Java代码如下所示:代码如下所示:DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver();使用使用 java.lang.Class类加载类加载Microsoft SQL Server JDBC驱动程序的驱动程序的Java代码如下所示:代码如下所示:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDr

42、iver);其中,其中,“com.microsoft.jdbc.sqlserver.SQLServerDriver”是是Microsoft SQL Server JDBC驱动程序的类名。驱动程序的类名。3)加载)加载InterClient JDBC驱动程序驱动程序 InterClient JDBC驱动程序的类名是驱动程序的类名是interbase.interclient.Driver。用。用DriverManager类加载类加载InterClient JDBC驱动程序的驱动程序的Java代码如代码如下所示:下所示:DriverManager.registerDriver(new interba

43、se.interclient.Driver();使用使用 java.lang.Class类加载类加载JDBC-ODBC驱动程序驱动程序的的Java代码如下所示:代码如下所示:Class.forName(interbase.interclient.Driver);4)加载)加载PostgreSQL JDBC 驱动程序驱动程序 PostgreSQL JDBC驱动程序的类名是驱动程序的类名是org.postgresql.Driver。用。用DriverManager类加载类加载PostgreSQL JDBC驱动程序的驱动程序的Java代码如下所示:代码如下所示:DriverManager.regis

44、terDriver(new corg.postgresql.Driver();使用使用 java.lang.Class类加载类加载PostgreSQL JDBC驱动程驱动程序的序的Java代码如下所示:代码如下所示:Class.forName(org.postgresql.Driver).newInstance();其中,其中,org.postgresql.Driver是是PostgreSQL JDBC驱动程序的类名。驱动程序的类名。5)加载)加载MySQL JDBC驱动程序驱动程序MySQL JDBC驱动程序的类名是驱动程序的类名是org.gjt.mm.mysql.Driver。用。用Dri

45、verManager类加类加载载MySQL JDBC驱动程序的驱动程序的Java代码如下所示:代码如下所示:DriverManager.registerDriver(new org.gjt.mm.mysql.Driver();使用使用 java.lang.Class类加载类加载MySQL JDBC驱动程序驱动程序的的Java代码如下所示:代码如下所示:Class.forName(org.gjt.mm.mysql.Driver).newInstance();其中,其中,org.gjt.mm.mysql.Driver是是MySQL JDBC驱动程序的类名。驱动程序的类名。6)加载)加载JDBC-O

46、DBC桥驱动程序桥驱动程序用用DriverManager类加载类加载JDBC-ODBC桥驱动程序桥驱动程序的的Java代码如下所示:代码如下所示:DriverManager.registerDriver(new sun.jdbc.JdbcOdbcDriver();使用使用 java.lang.Class类加载类加载JDBC-ODBC驱动程序驱动程序的的Java代码如下所示:代码如下所示:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);其中,其中,sun.jdbc.odbc.JdbcOdbcDriver是数据库是数据库驱动程序的类名。驱动程序的类名。加载了

47、数据库的加载了数据库的JDBC驱动程序之后,就可以驱动程序之后,就可以创建与数据库的连接了。创建与数据库的连接了。与数据库建立连接的常用方法是调用与数据库建立连接的常用方法是调用DriverManager 类的静态方法类的静态方法getConnection(String connect_string)。其代码。其代码如下:如下:Connection conn=DriverManager.getConnection(URL,User,Password);其中,其中,URL、User、Password是连接数据库需是连接数据库需要指定的连接参数。要指定的连接参数。三三、创建数据库连接、创建数据库连

48、接、加载、加载JDBCJDBC驱驱动程序动程序 连接参数说明及示例URL数据库的URL,用于定位数据库,该参数的一般格式如下:jdbc:其中,jdbc是一种协议;subprotocol是协议,表示数据库驱动程序名或数据库连接机制。例如,Oracle JDBC 驱动程序的子协议都是oracle;是子名称,用于标识要连接的数据库,子名称的结构和内容由各驱动程序开发商规定User访问数据库的用户账号。如SYS、Lucy、sa、Admin等Password特定用户账号的密码。如hero、myPasswords。如果未设置密码,该参数为连接数据库的连接参数连接数据库的连接参数 在建立了与数据库的连接后,

49、应用程序可在建立了与数据库的连接后,应用程序可以在此连接上创建以在此连接上创建SQL语句对象,以便执语句对象,以便执行用户定义的行用户定义的SQL语句。语句。10.4 SQL查询语言的执行 在建立了与数据库的连接后,应用程序可以在此连接上在建立了与数据库的连接后,应用程序可以在此连接上创建创建SQL语句对象,以便执行用户定义的语句对象,以便执行用户定义的SQL语句。在语句。在Connection中,提供了中,提供了3种种createStatement()成员方法,成员方法,用于创建用于创建Statement对象:对象:Statement createStatement()throws SQLE

50、xception;Statement createStatement(int resultSetType,int resultSetConcurrency)throws SQLException;Statement createStatement(int resultSetType,int resultSetConcurrency,int resultSetHoldability)throws SQLException;10.4.1 创建Statement对象 例如:利用不带参数的例如:利用不带参数的createStatement方方法创建法创建Statement对象的代码如下:对象的代码如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java程序的设计-第10章-数据库访问编程技术课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|