千家信息网

如何解决微软自带JDBC的resultset缺陷

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章给大家介绍如何解决微软自带JDBC的resultset缺陷,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。微软自带的3个驱动包分别为:msbase.jar,mssqlser
千家信息网最后更新 2025年11月15日如何解决微软自带JDBC的resultset缺陷

这篇文章给大家介绍如何解决微软自带JDBC的resultset缺陷,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

微软自带的3个驱动包分别为:msbase.jar,mssqlserver.jar,msutil.jar

微软JDBC resultset驱动的缺点:

(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之类的错误

测试方法和代码如下:

数据库表:TestTable

表字段及类型:

guid char(38)

title varchar(100)

content Text

username varchar(20)

JDBC resultset代码

public static void main(String[] args) {             // TODO Auto-generated method stub             String url = "jdbc:microsoft:sqlserver://192.168.5.20:1435;DatabaseName=emos2.2";             String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";             try {                 Class.forName(driver);                 Connection conn = DriverManager.getConnection(url, "sa", "1234");                 if (conn.isClosed() == true) {                     System.out.println("SomeThing   goes   wrong ");                 }                 PreparedStatement st = conn.prepareStatement("select * from TestTable");                 ResultSet rs = st.executeQuery();                 while(rs.next()){                     System.out.println(rs.getString("guid"));                     System.out.println(rs.getString("username"));                     System.out.println(rs.getBinaryStream("content"));                                      }             } catch (ClassNotFoundException e) {                 System.out.println("SomeThing     wrong ");                 System.out.println(e);             } catch (SQLException e) {                 e.printStackTrace();             }         }     public static void main(String[] args) {    // TODO Auto-generated method stub    String url = "jdbc:microsoft:sqlserver://192.168.5.20:1435;DatabaseName=emos2.2";    String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";    try {     Class.forName(driver);     Connection conn = DriverManager.getConnection(url, "sa", "1234");     if (conn.isClosed() == true) {      System.out.println("SomeThing   goes   wrong ");     }     PreparedStatement st = conn.prepareStatement("select * from TestTable");     ResultSet rs = st.executeQuery();     while(rs.next()){      System.out.println(rs.getString("guid"));      System.out.println(rs.getString("username"));      System.out.println(rs.getBinaryStream("content"));           }    } catch (ClassNotFoundException e) {     System.out.println("SomeThing     wrong ");     System.out.println(e);    } catch (SQLException e) {     e.printStackTrace();    }   }      而第三方的驱动jtds1.2很好的解决了这些bug   Java代码   public static void main(String[] args) {             String url = "jdbc:jtds:sqlserver://192.168.5.20:1435/emos2.2";             String driver = "net.sourceforge.jtds.jdbc.Driver";             try {                 Class.forName(driver);                 Connection conn = DriverManager.getConnection(url, "sa", "1234");                 if (conn.isClosed() == true) {                     System.out.println("SomeThing   goes   wrong ");                 }                 PreparedStatement st = conn.prepareStatement("select * from TestTable");                 ResultSet rs = st.executeQuery();                 while(rs.next()){                     System.out.println(rs.getString("guid"));                     System.out.println(rs.getString("username"));                     System.out.println(rs.getBinaryStream("content"));                                      }             } catch (ClassNotFoundException e) {                 System.out.println("SomeThing     wrong ");                 System.out.println(e);             } catch (SQLException e) {                 e.printStackTrace();             }         }

关于如何解决微软自带JDBC的resultset缺陷就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

微软 类型 驱动 代码 字段 查询 缺陷 内容 更多 语句 顺序 帮助 不错 兴趣 小伙 小伙伴 数据 数据库 文章 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全保障工作情况报告 crm数据库什么意思 orcel数据库除法的运算 web 数据库 安卓的项目 无锡公司软件开发哪家好 高中网络安全教育内容 在原有服务器如何接入系统平台 齐齐哈尔章鱼软件开发公司 济南成人软件开发培训机构 福建计算机网络技术基础期末 腾讯会议服务器连接情况超时 开数据网络技术有限公司官网 软件开发流程gb 甘肃服务器地址查询 广东多功能软件开发价格表格 如何进入数据库文件夹下 sql用命令方式建数据库 山东省步天网络技术有限公司 软件开发增值税即征退税额计算 数据库 行死锁 怎样避免服务器指令信息重复刷新 小米盒子服务器 米思米无法访问服务器端口 绍兴嘻孖菜网络技术有限公司 idcx86服务器出货量 sybase数据库用户 网络安全法 意识形态 数据库中数据的来源是什么 免费数据库建模工具 关于重视网络安全的作文
0