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

PPT
  • 阅读 84 次
  • 下载 0 次
  • 页数 64 页
  • 大小 248.535 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Java程序的设计-第10章-数据库访问编程技术课件
可在后台配置第一页与第二页中间广告代码
Java程序的设计-第10章-数据库访问编程技术课件
可在后台配置第二页与第三页中间广告代码
Java程序的设计-第10章-数据库访问编程技术课件
可在后台配置第三页与第四页中间广告代码
Java程序的设计-第10章-数据库访问编程技术课件
Java程序的设计-第10章-数据库访问编程技术课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 64
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Java程序的设计-第10章-数据库访问编程技术课件.ppt,共(64)页,248.535 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45142.html

以下为本文档部分文字说明:

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

1JDBC概述•JDBC(JavaDataBaseConnectivity,Java数据库连接)是一种可用于执行SQL语句的JavaAPI,它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以方便地将各种SQL语句传送到任何关系数

据库中。•JDBC由一些Java语言编写的类和接口组成。用户使用这些类和接口就可以用统一的形式访问各种不同的关系数据库,并开发访问不同厂商数据库的应用程序。JDBC的基本结构如图所示。从图中可以看出:顶层是Java应用程序,它既可以是Applet

应用程序,也可以是独立运行的Application应用程序,甚至还可以是服务器端运行的Severlet和EJB组件等。其他两层是JDBC接口,分别是面向程序员的JDBCAPI及面向数据库厂商的JDBCDriverAPI。10.1.1JDBC的基本结构JDBC的基本结构•Java应用程序

通过JDBCAPI接口,经由JDBC驱动程序管理器、JDBCDriverAPI和JDBC驱动程序访问下层的数据库。JDBCAPI屏蔽了不同的数据库驱动程序之间的差异,使得程序设计人员只能用一个标准的、纯Java的数据库程序设计接口,为在Java中访问任意类型的数据库提供

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

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

将JDBC调用转换为ODBC调用,应用程序是通过JDBC调用连接到一个使用ODBC驱动程序的数据库。要求每个客户端都安装上数据库对应的ODBC和JDBC-ODBCBridge两种驱动程序。(2)本地API,部分Java驱动程序(NativeAPI,partlyJavadri

ver)。它是部分使用Java语言编写和部分使用本机代码编写的驱动程序,它将数据库厂商的特殊协议转换成Java代码及二进制类码,即把客户端的JDBC调用转换为Oracle、Sybase、DB2或其他DBMS的调用,使Java数据库客户端与数据库服务器端通信。10.1.2JDBC驱

动程序(3)JDBC-Net,纯Java驱动程序。它是纯Java的驱动程序,通过一定的网络协议与数据库服务器上的JDBC中间件通信,由中间件程序将网络协议指令转换成数据库指令。中间件可支持多种数据库,适合具有中间件的分布式应用。(4)本地协议,纯Java驱动程序。可这类驱动

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

括:连接(Connection):实现建立与数据库的连接SQL语句(Statement):向数据库发起查询请求结果集(ResultSet):处理数据库返回结果其中核心的类和接口包含在java.sql包和javax.sql包中。

表中列出了java.sql包中访问数据库的重要类和接口及它们的功能说明。访问数据库的重要类和接口类名功能说明java.sql.DriverManager用于加载驱动程序,建立与数据库的连接。在JDBC2.0中建议使

用DataSource接口来连接包括数据库在内的数据源。java.sql.Driver驱动程序接口。java.sql.Connection用于建立与数据库的连接。java.sql.Statement用于执行

SQL语句并返回结果。它有两个子类:java.sql.PreparedStatement:用于执行预编译的SQL语句;java.sql.CallableStatement:用于执行对于一个数据库的内嵌过程的调用java.sql.ResultSet控制SQL查询返回的结果集。java.sql.

SQLExceptionSQL异常处理类,其父类是java.lang.Exception。•访问数据库的第一步是与数据源建立连接,只有建立了连接,才能在数据库和应用程序之间移动数据。•DriverManager类是java.sql包中用于数据库驱动程序管理的类,用

于在数据库和相应驱动程序之间建立连接,也处理像驱动程序登录时间限制、登录和跟踪消息的显示等事务。10.2.1DriverManager类DriverManager类的主要成员方法类、接口或方法名功能说明staticvoidr

egisterDriver(Driverdriver)注册数据库驱动程序staticvoidderegisterDriver(Driverdriver)从数据库驱动程序列表中删除指定的数据库驱动程序staticConnec

tiongetConnection(Stringurl)创建与指定的数据库url的连接staticConnectiongetConnection(Stringurl,propertiesinfo)通过指定的数据库url及属性信息创建数据库连接staticConnec

tiongetConnection(Stringurl,Stringusername,Stringpassword)通过指定的数据库url及用户名、密码创建数据库连接staticDrivergetDrive(

StringURL)获取url指定的数据库驱动程序•DriverManager对象提供了三种建立数据库连接的方法。每种方法都返回一个Connection对象实例,区别是它们接收的参数不同。•URL用于指定数据源和用于连

接到该数据源的数据库的连接类型。其格式如下:jdbc:<subprotocol>:<subname>其中:jdbc:表示使用的协议是JDBC。<subprotocol>:驱动程序或者连接机制的名称,可以有一个或者多个驱动程序支持<subname>:数据库的唯一标识符

例如:通过JDBC-ODBC桥和数据库的标识符DBTest来访问数据库的URL为:“jdbc:odbc:DBTest”java.sql.Driver接口规定了所有JDBC驱动程序必须实现的方法。加载或注册一个数据库驱动程序,实际上就是创建了数据库驱动程序的一个实例,从而保证J

ava程序使用统一的形式,通过不同的数据库驱动器访问各种数据库。10.2.2Driver接口java.sql.Connection是java.sql包中定义的一个接口,其功能是建立与数据库的连接。只有成功地建立与数据库的连接,才能够创建用于执行SQ

L语句的Statement对象,进而获取数据库执行SQL语句后返回的结果。10.2.3Connection接口类或接口名功能说明StatementCreateStatement()创建一个statement对象

,它将生成具有特定类型和并发性的结果集voidcommit()提交对数据库的改动并释放当前连接持有的数据库的锁voidrollback()回滚当前事务中所有改动,释放当前连接持有的数据库的锁StringgetCatalog()获取连接对象的当前目录名booleani

sClosed()判断连接是否已关闭voidclose()立即释放连接对象的数据库和JDBC资源Connection接口的主要成员方法10.2.4Statement接口•Statement是在已经建立的连接的基础上向数据库发送SQL语句的对象。•St

atement接口定义了执行SQL语句和获取返回结果的成员方法。它们都作为在给定连接上执行SQL语句的容器,每个都专用于发送特定类型的SQL语句。由于Statement为一个接口,它本身不能被实例化,必须通过调用Connection对象的createSt

atement()方法创建一个Statement对象。Satatement接口的主要成员方法成员方法名功能说明voidclose()关闭Statement对象int[]executeBatch()执行多个SQL语句booleanexec

ute(Stringsql)执行SQL语句ResultSetexecuteQuery(Stringsql)进行数据库查询的SQL语句intexecuteUpdate(Stringsql)进行数据库更新的SQL语句ConnectiongetConnection()

获取对数据库的连接intgetMaxRows()返回数据库结果集最大行数booleangetMoreResults()移动到Statement的下一个结果处,返回多个结果的SQL语句intgetQueryTimeout()返回查询超时设置ResultSetgetResul

tSet()获取结果集Statement接口提供了3种执行SQL语句的方法:(1)executeQuery()方法:执行返回单个ResultSet的SQL语句,如SELECT语句。(2)executeUpdate()方

法:用于执行INSERT、UPDATE、DELETE、CREATETABLE以及DROPTABLE语句.返回值是一个整数,表示它执行的SQL语句所影响的数据库中的表的行数。(3)execute()方法:用于执行返回多个结果集或多个更新计数的语句,它的执行结果可能会产生多个ResultSet,或者

改变多条记录。所以一般只有在用户不知道执行SQL声明后会产生什么结果或可能有多种类型的结果产生时才会使用。10.2.5ResultSet接口结果集ResultSet是用来暂时存放执行SQL语句后产生的结果集合。它的实例对象一般是Statement类的

子类通过方法execute()或executeQuery()执行SQL语句后产生的,包含有这些语句的执行结果。ResultSet类似于数据库中的表,包含符合查询要求的所有行。ResultSet类提供了一套getXXX(

)方法对这些行中的数据进行访问。•如:booleangetBoolean(intcolumnIndex)、intgetInt(intcolumnIndex)等,用于获取当前行中某一列的值,返回相应类型的值。•它还提供了很多移动游标(cursor)的方法。cursor是Resul

tSet维护的指向当前数据行的指针。最初它位于第一行之前,因此第一次访问结果集时通常调用next()方法将游标置于第一行上,使它成为当前行。随后每次调用next()使游标向下移动一行。•另外,还提供了isBefor

eFirst()、isAfterLast()、isFirst()、isLast()等方法用于判断游标是否在结果集的头部、结果集的末尾、结果集的第一行和结果集的最后一行等。10.2.6PreparedStatement接口当使用Statement对象执行SQL语句时,数据库中的SQ

L语句解释器首先将SQL语句进行编译,生成底层可理解的内部命令,然后执行。为了减少重复编译SQL语句所产生的开销,JDBC提供了PreparedStatement接口,由于PreparedStatement语句中包含了经过预编译的SQL语句,因此可以获得更高的执行效率。特别是当

需要反复调用某些SQL语句时,使用该接口具有明显的优势。1、创建PreparedStatement对于JDBC,当使用Connection与某个数据库建立了连接对象con后,则con可以调用PreparedStatement()方法创建PreparedStatement对象。

例如:stmt=con.prepareStatement("SELECT*FROMStudent");2、执行PreparedStatement创建了PreparedStatement对象后,就可以执行它了,调用表10-4所示的成员方法进行各种操作。如:stmt.executeUpdate()

;在PreparedStatement语句中可以包含多个用通配符“?”代表的字段。在执行之前,必须为在创建PreparedStatement时定义的通配符提供实际的数据。可以利用setXXX()方法设置该字段的内容,从而增强程序设计的动态性。例如:

如果要替换的值是一个int型,则可调用setInt()方法。基本上可以找到所有Java类型的setXXX()方法。setXXX()方法的第一个参数指定要替换的占位符的索引(索引从1开始)。通配符在预处理SQL语句中从左到右依次出现的顺序分别称为第1个,第2个……第m个通配符。10.2.7Call

ableStatement接口CallableStatement接口继承了PreparedStatement接口,用于执行对数据库存储过程的调用。它提供了gettXXX()方法获取某字段的内容。如果要获取的值是一个int型,则可调用getInt()方法。setXXX()方法的

第一个参数指定要替换的占位符的索引(索引从1开始)。通配符在预处理SQL语句中从左到右依次出现的顺序分别称为第1个,第2个……第m个通配符。1、创建CallableStatement对象CallableStatement对象是用Connec

tion接口的prepareCall()方法创建的。例如:CallableStatementcstm=con.prepareCall("{callgetTestData(?,?)}");其中被调用的存储过程的名字为getTestData。该存储过程有两个变量,但不含结果参

数。“?”通配符为IN、OUT或INOUT参数,取决于存储过程本身。在JDBC中调用存储过程的语法如下:{call过程名}:不带参数的存储过程的调用。{call过程名[(?,?,...)]}:需要若干参数的存储过程的调用。{?=call过程名[(

?,?,...)]}:需要若干参数并返回结果参数的存储过程的调用。2、执行CallableStatement对象创建CallableStatement对象后,就可以调用其相关成员方法完成所需的操作。例如:try{CallableStatementcstm=con.prepareCall("

{callgetStudentID(?,?)}");cstm.setString(1,"06070010");//向存储过程传递参数cstm.registerOutParameter(2,Type.REAL);//如需存储过程

返回结果,需先调用registerOutParameter()方法设置输出参数类型cstm.executeQuery();floatx=cstmt.getFloat(1);//用get方法获取执行结果}catch(SQLExceptione){…}……10.3JDBC访问数据库

的基本过程利用JDBC访问数据库需要经历下面几个基本步骤:(1)注册数据源;(2)加载JDBC驱动程序;(3)创建数据库连接;(4)创建Statement;(5)执行Statement;(6)处理查询结果集;(7)关闭数据库连接。一、注册ODBC数据源在创建数

据库连接之前,必须要先创建数据源。下面以WindowsXP为例说明注册ODBC数据源的过程。我们要把一个Oracle10i的数据库Student注册为一个ODBC数据源,命名成DBTest。注册步骤如下:1.在WindowsXP中选择“控制面板”、“性能和维护”、“管理工具”和“数

据源(ODBC)”,弹出如图所示的“ODBC数据源管理器”对话框。2.单击其中的某个驱动程序,或者选择“用户DSN”选项卡,然后单击“添加(D…)”按钮,弹出如图所示的“创建新数据源”对话框。在这个对话框中,选择Oracle公司提供的驱动程序OracleOraDb10g_home

1(如果要创建其他数据库的数据源,例如MicrosoftSQLServer或MicrosoftAccess数据库的数据源,可以在“创建新数据源”对话框中选择SQLServer或MicrosoftAccess驱动程序)。3.单击“完成”

按钮,出现如图所示的“OracleODBCDriverConfiguration”对话框。在图示的对话框中的“DataSourceName”(数据源名)输入框中输入数据源的名字(如:DBTest),该名字将被

用来在Java程序中建立与数据库的连接。可以在“服务器”(TNSServerName)输入框中输入相应的数据库服务器的名称或者IP地址(如:MyServer),然后单击“TestConnection”按钮,

以测试连接是否可用。测试成功后,Java程序才能够通过JDBC访问该数据源。在访问数据库之前,必须将JDBC驱动程序加载到Java虚拟机中。加载驱动程序有两种基本方法:(1)使用DriverManager类的静态方法

registerDriver加载;(2)使用java.lang.Class类的forName方法加载。二、加载JDBC驱动程序使用DriverManager类加载OracleJDBC驱动程序的Java代码如下:DriverManager.registerDri

ver(neworacle.jdbc.driver.OracleDriver());如果加载的驱动程序不存在,就会出现异常,此时需要应用程序对这种异常进行处理。1)加载OracleJDBC驱动程序使用java.lang.Class类加载OracleJDBC

驱动程序的Java代码如下所示:Classc=Class.forName("oracle.jdbc.driver.OracleDriver");如果加载的的驱动程序不存在,Class.forName()方法将会抛出ClassNotFoundException异常。此时同样需要应

用程序处理异常。2)加载MicrosoftSQLServerJDBC驱动程序用DriverManager类加载MicrosoftSQLServerJDBC驱动程序的Java代码如下所示:DriverMa

nager.registerDriver(newcom.microsoft.jdbc.sqlserver.SQLServerDriver());使用java.lang.Class类加载MicrosoftSQLServerJDBC驱动程序的Java代码如下所示:Class.forN

ame("com.microsoft.jdbc.sqlserver.SQLServerDriver");其中,“com.microsoft.jdbc.sqlserver.SQLServerDriver”是MicrosoftSQLServerJDBC

驱动程序的类名。3)加载InterClientJDBC驱动程序InterClientJDBC驱动程序的类名是interbase.interclient.Driver。用DriverManager类加载InterClientJDBC驱动程序的Java代码如下所示:Driver

Manager.registerDriver(newinterbase.interclient.Driver());使用java.lang.Class类加载JDBC-ODBC驱动程序的Java代码如下所示:Class

.forName("interbase.interclient.Driver");4)加载PostgreSQLJDBC驱动程序PostgreSQLJDBC驱动程序的类名是org.postgresql.Driver。用DriverManager类加载PostgreS

QLJDBC驱动程序的Java代码如下所示:DriverManager.registerDriver(newcorg.postgresql.Driver());使用java.lang.Class类加载PostgreSQLJDBC驱动程序的Java代码如下所示:Class.forName("o

rg.postgresql.Driver").newInstance();其中,"org.postgresql.Driver"是PostgreSQLJDBC驱动程序的类名。5)加载MySQLJDBC驱动程序MySQLJDBC驱动程序的类名是org.gjt

.mm.mysql.Driver。用DriverManager类加载MySQLJDBC驱动程序的Java代码如下所示:DriverManager.registerDriver(neworg.gjt.mm.mysql.Driver());使用java.lang.Cl

ass类加载MySQLJDBC驱动程序的Java代码如下所示:Class.forName("org.gjt.mm.mysql.Driver").newInstance();其中,"org.gjt.mm.mysql.D

river"是MySQLJDBC驱动程序的类名。6)加载JDBC-ODBC桥驱动程序用DriverManager类加载JDBC-ODBC桥驱动程序的Java代码如下所示:DriverManager.registerDriver(newsun.jdbc.JdbcOdbcDriver());使用ja

va.lang.Class类加载JDBC-ODBC驱动程序的Java代码如下所示:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");其中,"sun.jdbc.odbc.JdbcOdbcDriver"是数据库驱动程序的

类名。加载了数据库的JDBC驱动程序之后,就可以创建与数据库的连接了。与数据库建立连接的常用方法是调用DriverManager类的静态方法getConnection(Stringconnect_string)。其代

码如下:Connectionconn=DriverManager.getConnection(URL,User,Password);其中,URL、User、Password是连接数据库需要指定的连接参数。三、创建数据库连接、加载JDBC驱动程序连接参数说

明及示例URL数据库的URL,用于定位数据库,该参数的一般格式如下:jdbc:<subprotocol>:<subname>其中,jdbc是一种协议;subprotocol是协议,表示数据库驱动程序名或数据库连接机制。例如,OracleJDBC驱动程序的子

协议都是oracle;<subname>是子名称,用于标识要连接的数据库,子名称的结构和内容由各驱动程序开发商规定User访问数据库的用户账号。如"SYS"、"Lucy"、"sa"、"Admin"等Password特定用户账号的密码。如"hero"、"myPasswords"。如果未设置密码,

该参数为""连接数据库的连接参数在建立了与数据库的连接后,应用程序可以在此连接上创建SQL语句对象,以便执行用户定义的SQL语句。10.4SQL查询语言的执行在建立了与数据库的连接后,应用程序可以在此连接上创建S

QL语句对象,以便执行用户定义的SQL语句。在Connection中,提供了3种createStatement()成员方法,用于创建Statement对象:StatementcreateStatement()throwsSQLException;Sta

tementcreateStatement(intresultSetType,intresultSetConcurrency)throwsSQLException;StatementcreateStatement(intresultSetType,intresultSetConcurr

ency,intresultSetHoldability)throwsSQLException;10.4.1创建Statement对象例如:利用不带参数的createStatement方法创建Statement对

象的代码如下:Statementstmt=conn.createStatement()//conn是已经建立好的数据库连接另外,还可以利用JDBC提供的preparedStatement接口和CallableStatement接口来创建SQL语句对象。由于SQL语句可以分成两大类:一类是

数据定义和更新语句,如CREATE、INSERT、UPDATE和DELETE等语句;另一类是SELECT查询语句。因此,JDBC中的Statement对象提供了执行不同SQL语句的基本处理方法:Statement中定义

的executeUpdate()成员方法用于执行数据定义和更新语句,Statement中定义的executeQuery()成员方法用于执行SELECT查询语句。10.4.2执行StatementSQL中的

SELECT查询语句,可以使用如下代码:Statementstmt=conn.createStatement();//创建Statement对象ResultSetrset=stmt.executeQuery("SELECTname,majorFROMstu

dent");//执行查询语句SQL中的数据更新语句,如DELETE语句,则可以使用如下的代码片段:Statementstmt=conn.createStatement();//创建Statement对象introwcoun

t=stmt.executeUpdate("DELETEFROMstudentWHEREnumber='06070001'");//执行更新语句10.4.2执行Statement如果只能在运行时才能确定SQL语句的类型,则可以使用Statement中的execute()成员方法

动态地执行未知类型的SQL语句。这个成员方法将返回一个表示SQL语句类型的布尔值。如果返回真,说明SQL语句是查询语句,否则是更新语句或数据定义语句。示例代码如下:Statementstmt=conn.createState

ment();//用execute方法执行SQL语句booleanresult=stmt.execute(statement);if(result){//statement是一个查询语句//获取结果集ResultSetrset=stmt.getResultSet()

;//处理结果//...}else{//statement是更新语句或数据定义语句intupdateCount=stmt.getUpdateCount();//处理结果//...}Statement执行SQL语句之后,将返回一个结果集对象ResultSet。每一个R

esultSet对象都有一个游标(cursor)指向结果集的当前位置,游标的初始位置是在结果集的第一行之前。第一次调用next()方法使游标移动到第一行,它返回一个boolean型的数据,当游标移动到最后一行之后返回false。10.4.3处理查询

结果集用户可以通过ResultSet对象提供的定位游标的成员方法对结果集进行遍历,进而用一组getXXX方法获取,或用一组updateXXX方法更新结果集中每一个记录(Record)中的属性值。定位游标的成员方法功能说明booleanabsolute(introw)将游标移动到Resul

tSet中由row指定的行VoidafterLast()将游标移动到ResultSet对象紧靠最后一行之后的位置VoidbeforeFirst()将游标移动到ResultSet对象紧靠第一行之前的位置b

ooleanfirst()将游标移动到ResultSet对象的第一行booleanisAfterLast()判断游标是否在结果集中的最后一行之后booleanisBeforeFirst()判断游标是否在结果集中的第一行之前booleanisFi

rst()判断游标是否指向结果集中的第一行booleanisLast()判断游标是否指向结果集中的第一行booleanlast()将游标移动到ResultSet对象的最后一行。booleannext()将ResultSet对象

的当前游标从当前位置下移一行。booleanprevious()将ResultSet对象的当前游标从当前位置上移一行。ResultSet中定位游标的方法在完成任务之后,程序必须自己关闭结果集ResultSet对象和Statement对象,而不能像一般的Java对象那样等待Java虚拟机进行垃圾回

收。因为这些对象并不是利用new运算符创建的对象,而是由底层JDBC驱动程序创建的,因此必须用Java代码通知底层驱动程序释放它们,否则就有可能造成内存的泄漏,导致数据库服务器资源不足。10.4.4关闭数据

库连接下面是一些关闭结果集ResultSet对象和Statement对象的代码:rset.close();//关闭结果集对象rsetstmt.close();//关闭Statement对象stmt在关闭了结果集对象Re

sultSet和Statement对象后,还要关闭连接对象。代码为:conn.close();//关闭连接对象conn对于服务器端的缺省连接则不需要关闭。10.5综合应用举例本章主要介绍了使用JDBC访问数据库的一些技术,包括Java访问数据库的类和接口的使用方法、利用

JDBC访问数据库的基本访问过程和一些使用技巧。本节将通过一些数据库的高级访问功能进一步展示综合应用这些知识的基本方法与技巧。10.5.1可滚动查询集虽然通过ResultSet的next()方法可以顺序查询数据,但有时候需要在结果集中前后滚动,或者需要显示结果集中特定的某条记录。这

时,可使用Java提供的可滚动结果集。为了得到一个可滚动的结果集,须使用下述方法先获得一个Statement对象:Statementstmt=con.createStatement(intType,intConcur

rency);然后根据Type和Concurrency的情况,stmt返回相应类型的结果集:ResultSetrs=stmt.executeQuery(SQL语句);Type的取值方式决定滚动方式,取值情况为:TYPE_FORWARD_ONLY:结果集游标只能向前移

动。TYPE_SCROLL_INSENSITIVE:结果集的游标可前后滚动,当数据库内容变化时,当前结果集不变。TYPE_SCROLL_SENSITIVE:结果集的游标可前后滚动,当数据库内容变化时,当前结果集同步改

变。第二个参数Concurrency的取值决定是否可以用结果集更新数据库,Concurrency取值为:CONSUR_READ_ONLY:结果集不能用于更新数据库CONCUR_UPDATABLE:结果集可以用于更新数据库滚动查询经常用到的ResultSet的方法有以下几

种:absolute(introw):把游标移至给定的行afterLast():把游标移动到最后一行后面。beforeFirst():把游标移动到第一行前面。first():把游标移动到第一行。last():把游标移动到最后一行。previous()

:把游标移动到所在行的前一行。next():把游标移动到所在行的后一行。relative():把游标相对移动几行。例10-5实现滚动查询,以多种滚动方式查看结果问题分析:利用JDBC访问数据库的基本

过程完成相关操作后,在创建Statement对象时,应通过指定相应的属性,建立滚动集,并设置游标的不同位置,可以实现向前滚动和向后滚动等不同的查看方式。设计说明:为了实现滚动查询,应先创建一个滚动集,并设置

滚动集的相关属性。然后利用滚动集的相关方法实现不同滚动方式下的查询。可以在SQL语句中使用ORDERBY子句对记录排序,按照不同的字段进行排序,输出排序后的结果。例10-6对学生成绩实现排序及模糊查询,并能够实现倒序显示。问题分析:利用JDBC访问数据库的基本过程完成相关操

作后,在创建Statement对象时,应通过指定相应的属性,建立滚动集,而排序及模糊查询也可利用SQL语句实现。设计说明:为了实现倒序显示,应先创建一个滚动集,并设置滚动集的相关属性。为了实现排序及模糊查询然,可充分利用SQL语句中的ORDERBY子句和like执行查询

。10.5.2排序查询以及模糊查询

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?