2009-4-9 20:26:49 已被阅读:1016 发表评论
在用JSP+sqlserver开发网站中遇到“ResultSet can not re-read row data for column 1”问题,在网上搜索得知,原来是微软公司的驱动的兼容性不太好。
有热心人总结了微软驱动的缺点:
(1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text类型)
(2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取
(3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误
(4)如果想不查询语句中有没有image或text类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。
解决方法:
下载JDTS驱动(支持SQL6.5,7.0,2000,2005,SYBASE) 下载地址:http://jtds.sourceforge.net/
下载解压后找到jtds-1.2.2.jar,放到 JSP项目 WEB-INF/lib目录下
数据库连接文件DbConn.java
package com.database;
import java.sql.*;
public class DbConn {
//private static String driverName ="com.microsoft.jdbc.sqlserver.SQLServerDriver";
//private static String dbURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsp";
//原来的连接,jsp是数据库文件 http://www.dwww.cn
private static String driverName ="net.sourceforge.jtds.jdbc.Driver";
private static String dbURL="jdbc:jtds:sqlserver://localhost:1433/jsp";
private String userName="dwww";
private String userPwd="dwww";
public Connection dbConn=null;
public synchronized Connection getConnection()
{
try
{
Class.forName(driverName).newInstance();
dbConn=DriverManager.getConnection(dbURL, userName, userPwd);
if(dbConn!=null)
return dbConn;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
return null;
}
}
Ok,问题解决。
分享到:
相关推荐
面对`ResultSet cannot re-read row data for column X`这类问题时,可以通过调整读取顺序或更换JDBC驱动来解决。这两种方法都能有效避免该错误的发生,从而确保应用程序的稳定性和可靠性。对于长期维护的项目而言,...
### ResultSet对象获取数据的各种方法 在Java编程语言中,`ResultSet`对象是处理数据库查询结果的核心组件之一。它充当一个可滚动的、可更新的数据表,用于存储从数据库执行SQL语句后返回的结果集。本文将详细介绍...
在遇到使用微软官方驱动时出现的问题,如“ResultSet cannot re-read row data for column”这类错误时,可以选择切换到JTDS驱动来解决。 首先,你需要从源码仓库下载JTDS驱动的最新版本,例如jtds-1.2.2.jar。由于...
例如,`resultSet.getInt(1)`或`resultSet.getString("columnName")`。 4. 遍历结果集:为了完整遍历ResultSet,你需要在while循环中使用next()方法,直到它返回false为止。示例代码如下: ``` while (resultSet....
- `Object getValueAt(int row, int column)`:返回指定行和列的值,这将被`JTable`用于绘制单元格。 通过理解以上概念和方法,开发者可以有效地将数据库查询结果展示在`JTable`上,提供给用户友好的交互式视图。...
- **resultSetConcurrency**:定义ResultSet的并发性,可以是`ResultSet.CONCUR_READ_ONLY`或`ResultSet.CONCUR_UPDATABLE`。 - **ResultSet.CONCUR_READ_ONLY**:表示ResultSet只能读取,不能更新。 - **...
标题中的“oracle-export-data-into-excel-file.rar_DEMO_excel oracle”表明这是一个关于将Oracle数据库中的数据导出到Excel文件的示例项目。这个DEMO适用于那些希望通过编程方式实现这一功能的初学者。标签“demo ...
Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...
ResultSet是Java数据库连接(JDBC)中的一个重要接口,它用于存储和检索数据库查询结果。当执行SQL查询后,结果会被封装成ResultSet对象,允许我们逐行遍历并访问查询返回的数据。在处理ResultSet时,了解其属性和元...
总的来说,"ResultSet to XML Converter"是一个实用的开源工具,它解决了Java开发中常见的数据转换问题,使XML成为存储和交换ResultSet数据的便捷方式。通过了解并掌握这个工具,开发者可以更好地利用XML格式来满足...
resultSetConcurrency指定ResultSet的并发类型,可以是ResultSet.CONCUR_READ_ONLY或ResultSet.CONCUR_UPDATABLE之一。 ResultSet类型 ResultSet类型决定了ResultSet对象的行为,可以是以下三种类型之一: 1. ...
Java 数据库连接 ResultSet Java 数据库连接中的 ResultSet 是一个非常重要的概念,它包含符合 SQL 语句中条件的所有行,并且提供了对这些行中数据的访问。ResultSet 通过一套 get 方法访问当前行中的不同列,例如 ...
- 为避免性能问题,确保数据库支持高效的`CLOB`操作,并合理设计数据表结构,例如,对于非常大的`CLOB`,可能需要考虑外部存储选项。 - 使用连接池管理数据库连接,提高性能和资源利用率。 - 适当使用事务管理,...
ResultSet 转为 List ResultSet 转为 List<Map> 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,...
在Java编程中,数据处理是核心任务之一,而ResultSet、JSON和List是处理数据时常见的三种数据结构。ResultSet是数据库查询结果的载体,JSON是一种轻量级的数据交换格式,而List是Java集合框架中的动态数组。本文将...
在Java编程语言中,ResultSet是处理数据库查询结果的标准接口,它是Statement或PreparedStatement对象执行SQL查询后返回的结果集。本篇笔记将深入探讨2010年6月23日记录的一些关于ResultSet的常用操作,结合实例进行...
标题中的“poi根据ResultSet到处Excle源码”指的是使用Java的Apache POI库将数据库查询结果(ResultSet)转换为Excel文件的过程。Apache POI是一个流行的API,它允许开发者读写Microsoft Office格式的文件,包括...
- `rs.updateXXX(int column, XXX data)` 和 `rs.updateXXX(String columnName, String data)`:更新当前行指定列的值,其中XXX代表不同的数据类型,如int、double、String、Date等。 - `rs.updateRow()`:更新...
在Java编程中,ResultSet是处理数据库查询结果的主要接口,它由Statement或PreparedStatement对象执行SQL查询后返回。而JavaBean是一种符合特定规范的Java类,通常用于封装数据,便于数据的传输和操作。当我们从...
在Java编程语言中,`ResultSet`是用于存储和处理数据库查询结果的核心接口。它是由`Statement`或`PreparedStatement`执行SQL查询后返回的结果。本文将深入探讨`ResultSet`的使用方法,结合源码分析和实用工具,以...