- 浏览: 683576 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (198)
- 编程经验 (12)
- 移动端 (2)
- linux (1)
- 基础理论 (10)
- 开发工具 (8)
- 开发语言_java (21)
- 开源框架_Axis2 (8)
- GIS开发_OpenLayers (9)
- GIS开发_ArcGIS (6)
- GIS开发_googleAPI (4)
- GIS开发_AO (2)
- Web前端_Javascript (7)
- Web前端_CSSDIV (2)
- Web前端_WebGL (5)
- Web前端_HTML5 (1)
- 数据库 (17)
- 项目管理 (6)
- REST服务_Restlet (0)
- REST服务_RestEasy (5)
- 连接池 (6)
- 框架组合_SSI (7)
- 框架组合_SSH (37)
- 异常处理 (10)
- 测试 (1)
- ASP/ASP.NET (3)
- 我所遇到的JavaScript (1)
- cas (1)
- CI (1)
- nginx (1)
- 大数据 (1)
- maven (1)
- 机器学习 (0)
最新评论
-
章元o:
正解,问题解决了,要换tomcat的
webservice开发时项目启动过程中出现版本问题 -
dcloud:
大师,按照你的指点进行初始化工作,但是在connection. ...
AO连接sde出现java.lang.UnsatisfiedLinkError: no ntvauth in java.library.path -
yiran0314:
您好 关于这个问题能描述得更详细一点吗?
CXF异常处理 -
tianhandigeng:
找了半个小时了也没小号到m2e最新的地址,既然这个都让你找得这 ...
Myeclipse8.6安装Maven插件------ -
wxb880114:
这个发的比较早了,现在在myeclipse中有自带的,ecli ...
Myeclipse8.6安装Maven插件------
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的驱动下才能成立。
作者:佚名出处: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的驱动下才能成立。
发表评论
-
浅析Static用法解析java语言
2013-05-08 10:32 821在类中定义的数据成为 ... -
httpclient报异常
2013-03-17 21:14 3355Exception in thread "main& ... -
(转载)java synchronized详解
2013-01-25 10:44 777java synchronized详解 记下来,很重要。 ... -
基于JDBC的数据库连接池高效管理策略
2013-01-24 08:43 749基于JDBC的数据库连接池高效管理策略 发布时间:2 ... -
关于一个大型WEB系统架构设计和技术选型的讨论摘录
2013-01-23 09:06 1011关于一个大型WEB系统架 ... -
技术选型(转)
2013-01-22 21:41 829博客分类: Java SpringHi ... -
HTTP Status 405 - HTTP method GET is not supported by this URL
2012-11-30 13:25 1371出现错误的原因: 1,继承HttpServlet的Ser ... -
JVM内存资源耗尽,有解决方案吗?
2012-09-24 09:09 993去了趟sun,知道为什么了,heap,stack都有大小限制. ... -
转载 :网站并发测试工具
2012-09-21 09:33 954转载 :网站并发测试工 ... -
获取客户端Ip地址网上方案总结
2012-09-09 11:03 1101客户端: <script language=" ... -
对象与JSON之间的转换
2012-09-04 10:13 953JSON-lib这个Java类包用于把bean,map和XML ... -
调用JSONArray.fromObject(stss)出现java.lang.reflect.InvocationTargetException错误
2012-09-03 12:01 3732调用JSONArray.fromObject(stss)出现j ... -
How Tomcat Work——Tomcat 的默认连接器
2012-08-28 07:48 786注意: 本章中提及的“ ... -
Socket用法详解-----转载
2012-08-24 09:22 1622Socket用法详解 原文:ht ... -
数据结构与算法——数组实现Stack代码
2012-08-17 20:33 910package com.part02; publ ... -
数据结构与算法——简单排序
2012-08-14 21:13 855public class Sort { //存值 ... -
EL表达式取值
2012-07-23 16:55 1451EL表达式取值 1.EL表达式的语法格式很简单: 以前 ... -
Java基础学习------Vector类
2012-07-16 09:47 977一、定义 Vector 类可 ... -
Java基础学习------字符串、String类、StringBuffer类、StringBuilder类总结
2012-07-14 15:09 955一、定义: 字符串是字符的序列、它可以包含字母、数字和其 ... -
java字符串与整数之间的互相转换
2012-07-12 09:32 1654java字符串与整数之间的互相转换 1、如何将字符串S ...
相关推荐
本项目"JdbcConnection"利用了JDBC API,结合Servlet和Tomcat服务器,以及MySQL数据库,实现了数据的CRUD(Create、Read、Update、Delete)操作,展示了Web应用中数据库操作的基本流程。 首先,我们需要了解JDBC。...
Java Database Connectivity (JDBC) 是Java平台中用于与数据库交互的一组接口和类,它是Java应用程序连接到各种数据库的核心技术。理解JDBC连接配置是开发数据库驱动的应用程序的基础,本篇将详细介绍JDBC连接配置的...
标题和描述均聚焦于解释Java Database Connectivity (JDBC)中三个核心接口——`Connection`、`Statement`和`ResultSet`的作用。这三个接口是JDBC API的核心组成部分,它们共同协作,使得Java应用程序能够与各种关系...
这通常通过`Class.forName()`方法实现,例如对于MySQL,我们会加载"com.mysql.jdbc.Driver"。 2. **建立连接**:使用`DriverManager.getConnection()`方法建立到数据库的连接。这个方法需要数据库URL、用户名和密码...
在 `main` 方法中,创建了一个 `JDBCconnection` 实例,并调用 `creatConnection` 方法创建数据库连接。然后,执行一条查询语句,获取结果集并遍历输出每一行的 `adminid` 字段。最后,调用 `closeConnection` 方法...
ResultSet是JDBC中用于存储查询结果的一个接口,它表示从数据库中检索的数据集。而REF CURSOR则是PL/SQL(Oracle数据库的存储过程语言)中的一个概念,它相当于一个指向结果集的指针,可以在PL/SQL中动态打开和关闭...
因此,如果读取一个 ResultSet 与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成,如果存在某个语句打开的当前 ResultSet 对象,则 Statement 接口中所有执行方法都会隐式关闭它。 ...
JDBC主要接口、类: Connection:封装连接 DriverManager:管理驱动 Statement:封装SQL语句 PreparedStatement:封装SQL语句 ResultSet:封装结果集
Java数据库接口JDBC(Java Database Connectivity)是Java平台中用于与关系型数据库进行交互的一组标准API,它允许Java应用程序连接到各种类型的数据库系统。在Java应用程序中,JDBC提供了统一的方法来创建、配置、...
下面将对JDBC的主要概念、接口以及使用方法进行详细阐述。 1. **JDBC API概述** JDBC API由一系列的接口和类组成,它们定义了如何在Java程序中与数据库进行通信。核心接口包括`DriverManager`、`Connection`、`...
Java语言SQL接口JDBC编程技术是Java开发人员与关系型数据库进行交互的重要工具。JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java应用程序与各种类型的数据库进行通信,无论数据库管理系统...
3. **处理数据库返回的结果**:当SQL语句被执行后,数据库会返回结果集(ResultSet),JDBC通过`java.sql.ResultSet`接口提供了处理这些结果集的方法。开发者可以使用此接口来遍历结果集,提取数据,并进行进一步的...
- **独立性**:JDBC的设计允许开发者无需关心底层数据库的具体实现,只需要通过标准的JDBC接口就可以完成数据操作。 **1.3 数据库的连接步骤** 1. **加载驱动**:使用`Class.forName()`加载相应的数据库驱动。 2. ...
每个数据库驱动程序都需要实现`Driver`接口,以便Java程序能够识别并加载特定的数据库驱动。例如,要加载SQL Server的驱动,可以使用如下代码: ```java Class.forName(...
**JDBC API与JDBC接口详解** Java Database Connectivity(JDBC)是Java平台中的核心API,由Sun Microsystems(现已被Oracle公司收购)开发并维护,它为Java开发者提供了标准的接口,用于与各种类型的数据库进行...
5. **事务处理**:在JDBC中,可以通过Connection对象的setAutoCommit()方法来开启或关闭自动提交,手动管理事务的提交和回滚,例如使用commit()和rollback()方法。 6. **分页显示**:在JDBC中实现分页查询通常需要...
JDBC不仅定义了接口,还规定了实现这些接口的数据库驱动程序应该如何工作。下面将详细阐述JDBC的主要概念和使用流程。 1. **JDBC接口和类**: - JDBC接口主要位于`java.sql`和`javax.sql`包中。`java.sql`属于Java...
**JDBC接口技术详解** Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的核心API,它允许Java开发者使用标准的SQL语句来操作数据库。JDBC为开发人员提供了全面的数据库访问能力,无论是简单的查询...
JDBC是Java API,它提供了一套标准接口,使得Java程序可以与各种类型的数据库进行交互。Oracle是常用的商业关系型数据库管理系统,它支持JDBC连接。 要实现分页查询,我们通常会用到以下关键步骤: 1. **建立...