`
wxb880114
  • 浏览: 683576 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JDBC Connection接口实现ResultSet的方法

 
阅读更多
JDBC Connection接口实现ResultSet的方法
作者:佚名出处:IT专家网论坛2009-07-10 13:00本文向您介绍使用JDBC Connection接口实现结果集的几种方法,包括最基本的ResultSet、可滚动的ResultSet类型以及可更新的ResultSet等。

  结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,通过JDBC Connection接口可能完成对数据的更新等。

  结果集读取数据的方法主要是getXXX(),他的参数可以使整型表示第几列(是从1开始的),还可以是列名。返回的是对应的XXX类型的值。如果对应那列时空值,XXX是对象的话返回XXX型的空值,如果XXX是数字类型,如Float等则返回0,boolean返回false。使用getString()可以返回所有的列的值,不过返回的都是字符串类型的。XXX可以代表的类型有:基本的数据类型如整型(int),布尔型(Boolean),浮点型(Float,Double)等,比特型(byte),还包括一些特殊的类型,如:日期类型(java.sql.Date),时间类型(java.sql.Time),时间戳类型(java.sql.Timestamp),大数型(BigDecimal和BigInteger等)等。还可以使用getArray(int colindex/String columnname),通过这个方法获得当前行中,colindex所在列的元素组成的对象的数组。使用getAsciiStream(

  int colindex/String colname)可以获得该列对应的当前行的ascii流。也就是说所有的getXXX方法都是对当前行进行操作。

  结果集从其使用的特点上可以分为四类,这四类的结果集的所具备的特点都是和Statement语句的创建有关,因为结果集是通过Statement语句执行后产生的,所以可以说,结果集具备何种特点,完全决定于Statement,当然我是说下面要将的四个特点,在Statement创建时包括三种类型。首先是无参数类型的,他对应的就是下面要介绍的基本的ResultSet对应的Statement。下面的代码中用到的Connection并没有对其初始化,变量conn代表的就是Connection对应的对象。SqlStr代表的是响应的SQL语句。

  1、最基本的ResultSet。

  之所以说是最基本的ResultSet是因为,这个ResultSet他起到的作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。这种结果集的创建方式如下:

  Statement st = conn.CreateStatement

  ResultSet rs = Statement.excuteQuery(sqlStr);

  由于这种结果集不支持滚动的读取功能,所以如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。

  2、可滚动的ResultSet类型。

  这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),同时还支持要去的ResultSet中的第几行absolute(int n),以及移动到相对当前行的第几行relative(int n),要实现这样的ResultSet在创建Statement时用如下的方法。

  Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)

  ResultSet rs = st.executeQuery(sqlStr)

  其中两个参数的意义是:

  resultSetType是设置ResultSet对象的类型可滚动,或者是不可滚动。取值如下:

  ResultSet.TYPE_FORWARD_ONLY只能向前滚动

  ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE这两个方法都能够实现任意的前后滚动,使用各种移动的ResultSet指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。

  resultSetConcurency是设置ResultSet对象能够修改的,取值如下:

  ◆ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。

  ◆ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。

  所以如果只是想要可以滚动的类型的Result只要把Statement如下赋值就行了。

  Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,

  ResultSet.CONCUR_READ_ONLY);

  ResultSet rs = st.excuteQuery(sqlStr);

  用这个Statement执行的查询语句得到的就是可滚动的ResultSet。

  3、可更新的ResultSet

  这样的ResultSet对象可以完成对数据库中表的修改,但是我知道ResultSet只是相当于数据库中表的视图,所以并不时所有的ResultSet只要设置了可更新就能够完成更新的,能够完成更新的ResultSet的SQL语句必须要具备如下的属性:

  a、只引用了单个表。

  b、不含有join或者group by子句。

  c、那些列中要包含主关键字。

  具有上述条件的,可更新的ResultSet可以完成对数据的修改,可更新的结果集的创建方法是:

  Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)

  4、可保持的ResultSet

  正常情况下如果使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭。JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭。不过在JDBC3.0中,我们可以通过设置JDBC Connection接口中的ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数,这个Statement的创建方式也就是,我所说的Statement的第三种创建方式。如下:

  Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)

  ResultSet rs = st.excuteQuery(sqlStr);

  JDBC Connection接口中,前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数:

  ◆ResultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:

  ◆ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库。

  ◆ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭。

  不过这种功能只是在JDBC3.0的驱动下才能成立。


分享到:
评论

相关推荐

    JdbcConnection

    本项目"JdbcConnection"利用了JDBC API,结合Servlet和Tomcat服务器,以及MySQL数据库,实现了数据的CRUD(Create、Read、Update、Delete)操作,展示了Web应用中数据库操作的基本流程。 首先,我们需要了解JDBC。...

    JDBC Connection Configuration.rar

    Java Database Connectivity (JDBC) 是Java平台中用于与数据库交互的一组接口和类,它是Java应用程序连接到各种数据库的核心技术。理解JDBC连接配置是开发数据库驱动的应用程序的基础,本篇将详细介绍JDBC连接配置的...

    描述Connection、Statement、ResultSet接口的作用

    标题和描述均聚焦于解释Java Database Connectivity (JDBC)中三个核心接口——`Connection`、`Statement`和`ResultSet`的作用。这三个接口是JDBC API的核心组成部分,它们共同协作,使得Java应用程序能够与各种关系...

    jdbc connection

    这通常通过`Class.forName()`方法实现,例如对于MySQL,我们会加载"com.mysql.jdbc.Driver"。 2. **建立连接**:使用`DriverManager.getConnection()`方法建立到数据库的连接。这个方法需要数据库URL、用户名和密码...

    JDBCconnection.java 代码

    在 `main` 方法中,创建了一个 `JDBCconnection` 实例,并调用 `creatConnection` 方法创建数据库连接。然后,执行一条查询语句,获取结果集并遍历输出每一行的 `adminid` 字段。最后,调用 `closeConnection` 方法...

    如何从 Java 存储过程将 JDBC ResultSet 作为 Ref Cursor 返回.doc

    ResultSet是JDBC中用于存储查询结果的一个接口,它表示从数据库中检索的数据集。而REF CURSOR则是PL/SQL(Oracle数据库的存储过程语言)中的一个概念,它相当于一个指向结果集的指针,可以在PL/SQL中动态打开和关闭...

    JDBC常见易用的接口和类

    因此,如果读取一个 ResultSet 与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成,如果存在某个语句打开的当前 ResultSet 对象,则 Statement 接口中所有执行方法都会隐式关闭它。 ...

    jdbcJDBC主要接口、类

    JDBC主要接口、类: Connection:封装连接 DriverManager:管理驱动 Statement:封装SQL语句 PreparedStatement:封装SQL语句 ResultSet:封装结果集

    Java数据库接口JDBC介绍

    Java数据库接口JDBC(Java Database Connectivity)是Java平台中用于与关系型数据库进行交互的一组标准API,它允许Java应用程序连接到各种类型的数据库系统。在Java应用程序中,JDBC提供了统一的方法来创建、配置、...

    JDBC技术文档及接口的简单介绍

    下面将对JDBC的主要概念、接口以及使用方法进行详细阐述。 1. **JDBC API概述** JDBC API由一系列的接口和类组成,它们定义了如何在Java程序中与数据库进行通信。核心接口包括`DriverManager`、`Connection`、`...

    Java语言SQL接口 JDBC编程技术

    Java语言SQL接口JDBC编程技术是Java开发人员与关系型数据库进行交互的重要工具。JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java应用程序与各种类型的数据库进行通信,无论数据库管理系统...

    JDBC的作用及重要接口

    3. **处理数据库返回的结果**:当SQL语句被执行后,数据库会返回结果集(ResultSet),JDBC通过`java.sql.ResultSet`接口提供了处理这些结果集的方法。开发者可以使用此接口来遍历结果集,提取数据,并进行进一步的...

    jdbc学习文档

    - **独立性**:JDBC的设计允许开发者无需关心底层数据库的具体实现,只需要通过标准的JDBC接口就可以完成数据操作。 **1.3 数据库的连接步骤** 1. **加载驱动**:使用`Class.forName()`加载相应的数据库驱动。 2. ...

    JDBC常用接口总结

    每个数据库驱动程序都需要实现`Driver`接口,以便Java程序能够识别并加载特定的数据库驱动。例如,要加载SQL Server的驱动,可以使用如下代码: ```java Class.forName(...

    JDBC.rar_JDBC API_JDBC 接口

    **JDBC API与JDBC接口详解** Java Database Connectivity(JDBC)是Java平台中的核心API,由Sun Microsystems(现已被Oracle公司收购)开发并维护,它为Java开发者提供了标准的接口,用于与各种类型的数据库进行...

    JDBC数据访问接口

    5. **事务处理**:在JDBC中,可以通过Connection对象的setAutoCommit()方法来开启或关闭自动提交,手动管理事务的提交和回滚,例如使用commit()和rollback()方法。 6. **分页显示**:在JDBC中实现分页查询通常需要...

    java之JDBC原理及方法

    JDBC不仅定义了接口,还规定了实现这些接口的数据库驱动程序应该如何工作。下面将详细阐述JDBC的主要概念和使用流程。 1. **JDBC接口和类**: - JDBC接口主要位于`java.sql`和`javax.sql`包中。`java.sql`属于Java...

    JDBC接口技术

    **JDBC接口技术详解** Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的核心API,它允许Java开发者使用标准的SQL语句来操作数据库。JDBC为开发人员提供了全面的数据库访问能力,无论是简单的查询...

    使用jdbc_oracle实现的分页功能

    JDBC是Java API,它提供了一套标准接口,使得Java程序可以与各种类型的数据库进行交互。Oracle是常用的商业关系型数据库管理系统,它支持JDBC连接。 要实现分页查询,我们通常会用到以下关键步骤: 1. **建立...

Global site tag (gtag.js) - Google Analytics