JSP網(wǎng)站開(kāi)發(fā)中微軟驅(qū)動(dòng)引發(fā)的ResultSet相關(guān)問(wèn)題
在做JSP網(wǎng)站開(kāi)發(fā)(JSP+sqlserver)中遇到“ResultSet can not re-read row data for column 1”問(wèn)題,在網(wǎng)上搜索得知,原來(lái)是微軟驅(qū)動(dòng)的兼容性不太好。
有熱心人總結(jié)了微軟驅(qū)動(dòng)的缺點(diǎn):
(1)如果采用jdbc-odbc驅(qū)動(dòng),那么就必須按照查詢順序來(lái)一次讀?。ú徽撚袥](méi)有image或text類(lèi)型)
(2)如果采用微軟提供的ms sql server jdbc driver,如果查詢語(yǔ)句中,不存在image或text類(lèi)型字段,那么可以按照無(wú)序獲取
(3)如果采用微軟提供的ms sql server jdbc driver,如果查詢語(yǔ)句中,存在image或text類(lèi)型字段,那么就必須按照順序讀取,否則就會(huì)報(bào)告Driver]ResultSet can not re-read row data for column之類(lèi)的錯(cuò)誤
(4)如果想不查詢語(yǔ)句中有沒(méi)有image或text類(lèi)型字段,都可以不按照順序獲取,或重復(fù)獲取。那么就必須更換此微軟驅(qū)動(dòng),改用第三方的。
解決方法:
下載JDTS驅(qū)動(dòng)(支持SQL6.5,7.0,2000,2005,SYBASE):http://jtds.sourceforge.net/
下載解壓后找到j(luò)tds-1.2.2.jar,放到 JSP項(xiàng)目 WEB-INF/lib目錄下
數(shù)據(jù)庫(kù)連接文件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";
 - //原來(lái)的連接,jsp是數(shù)據(jù)庫(kù)文件 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相關(guān)問(wèn)題解決。
【編輯推薦】















 
 
 
 
 
 
 