今天遇到了问题“ResultSet can not re-read row data for column 4”,上网搜了下,原来是微软公司的驱动的兼容性不太好。下面引自csdn博客作者xwhope的文章。
有热心人总结了微软驱动的缺点:
(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第三方的驱动。测试成功。
错误代码如下:
<td class="td_list_content_center" width=60><%=rs.getString("tip_cd")%></td> --//第一次读取tip_cd
<td class="td_list_content" width=600><%=rs.getString("tip_title")%></td>
<td class="td_list_content_center" width=30>
<img border=0 src="img/view_original.gif" style="cursor: hand;" onmouseover="img/view_hover.gif" onmouseout="this.src='img/view_original.gif'" alt="查看" onclick="view('<%=iCurPosition%>','<%=rs.getString("tip_cd")%>')">--//tip_cd这里出问题了
</td>
解决方法:
下载JDTS驱动(支持SQL6.5,7.0,2000,2005,SYBASE) 下载地址:http://jtds.sourceforge.net/
下载解压后找到jtds-1.2.2.jar,放到 JSP项目 WEB-INF/lib目录下
加载驱动:
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String sConn="jdbc:jtds:sqlserver://localhost:1433/ch03";
String user = "sa";
String password = "123";
conn = DriverManager.getConnection(sConn, user, password);
问题解决!
我的问题也这样解决了,呵呵。
分享到:
相关推荐
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 5的解决方案
ResultSet的用法
JDBC规范 java.sql和javax.sql两个包中的类与接口(天龙八部): DataSource:数据源 ... ResultSet:结果集,封装了多条记录 JDBC数据库连接池/Connection Pool DBCP:apache tomcat内置
此代码实用程序会将任意数量的结果集转换为单个 xml 文件。 执行的主要方法是 XMLWriter.writeXML。
增加了拦截和记录sql查询的功能,包括拦截大多数Connection , Statement和ResultSet方法调用 -增加了拦截所有查询以及Connection , Statement和ResultSet方法调用的功能 添加连接池指标(jmx,codahale,...
Blog-Art.-09-Java-ResultSet-To-List 将ResultSet转换为Map对象的列表。 JdbcUtil类与静态方法一起使用。 该项目是使用NetBeans 8开发的。 环聊SpringMVC: ://youtu.be/clBK-R8LChM Spring-MYBATIS: ://youtu.be...
ResultSet 转为listmap
* @return a <code>ResultSet</code> object that contains the data produced * by the given query; never <code>null */ public ResultSet executeQuery(String sql) { try { Statement statement = ...
java数据库连接ResultSet
ResultSet直接在JTable显示
在java开发中常需要将ResultSet结果集转化为json格式以实现与客服端实现数据交互,但是这需要几个包,而且版本也要对应,因此我收集了全部的包,并测试可以运行,放在这里供大家下载。包括:commons-beanutils-1.7.0...
在 Oracle9i 之前,不可能从 Java 存储过程直接返回一个 ResultSet,因为没有定义表单 ResultSet->REF CURSOR 的映射。Oracle9i 增加了此映射,允许从函数返回 ResultSet 或将其作为 OUT 参数传到某个过程。但它仍不...
这是一个用来教你如何使用ResultSet 获取数据对象的文档,非常使用
JAVA 版本ResultSet 转换为JAVABEAN的工具类
获得结果集的字段名称,ResultSet的属性要调用ResultSetMetaData的方法
jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程jsp 三种查询分页 resultset,hibernate ,存储过程
resultset 变成 XML 格式输出
poi根据ResultSet到处Excle源码,包含项目所需jar包,可以直接运行
ResultSet转List
Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...