`
lshh83
  • 浏览: 162527 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

微软自带jdbc驱动缺陷

阅读更多
微软自带的3个驱动包分别为:msbase.jar,mssqlserver.jar,msutil.jar
微软驱动的缺点:
(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)
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
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();
		}
	}
分享到:
评论
4 楼 gange 2009-07-27  
晕,这是sql2000的驱动,现在sqljdbc 2.0都发布了
3 楼 魔力猫咪 2009-07-03  
JTDS主页上写得很明白,支持7.0、2000和2005,没2008。其最新的1.2.2版本是2007年8月发布的。而这时候SQLServer2008还没发布呢,怎么能说就支持2008呢。
微软SQLServer JDBC Driver 2.0地址
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=99b21b65-e98f-4a61-b811-19912601fdc9
2 楼 lshh83 2009-07-03  
那能麻烦您上传一下新驱动么?还有JDTS是支持2008的
1 楼 魔力猫咪 2009-07-03  
这都是哪年的黄历了???还贴出来。
微软的JDBC驱动已经经过了好几次大幅度更新,最新的最新版驱动还是不错的,支持SQLServer2000、2005、2008。
目前JDTS的更新停止了,目前停滞中。已经2年没发布新版本了,而且对2008没有支持。

相关推荐

    mysql jdbc 驱动 适用于5.7及以上版本数据库

    mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...

    微软 JDBC 4.0 驱动

    微软JDBC 4.0驱动是微软公司为Java开发者提供的一款用于连接Microsoft SQL Server数据库的Java Database Connectivity(JDBC)驱动程序。这个驱动版本主要针对SQL Server 2008数据库设计,同时也兼容更高版本的SQL ...

    access的jdbc驱动

    Access的JDBC驱动是Java数据库连接(Java Database Connectivity, JDBC)的一种实现,它允许Java程序与Microsoft Access数据库进行交互。在JDK 1.8之后,Oracle公司不再默认提供对ODBC(Open Database Connectivity...

    Oracle12C JDBC 驱动

    Oracle12C JDBC驱动是连接Java应用程序与Oracle数据库12c Release 2 (12.2.0.1) 的关键组件。JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java程序通过Java语言来访问和操作数据库。在...

    mysql jdbc 驱动 适用于5.6版本及以下数据库

    mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及...

    sql server 2000 jdbc 驱动

    SQL Server 2000 JDBC驱动是用于Java应用程序与Microsoft SQL Server 2000数据库进行交互的一种关键组件。在Java编程中,JDBC(Java Database Connectivity)接口提供了标准的方法来连接、查询和操作数据库。对于SQL...

    oracle12 jdbc驱动包

    Oracle 12c JDBC驱动包是Oracle数据库与Java应用程序之间的桥梁,它允许Java开发者通过编写Java代码来访问和操作Oracle数据库。在Java编程环境中,JDBC(Java Database Connectivity)是标准API,用于连接各种类型的...

    sybase 数据库 jdbc 驱动下载

    在本文中,我们将深入探讨Sybase数据库与JDBC驱动的相关知识点。 首先,JDBC驱动是Java应用程序与数据库之间通信的桥梁,它提供了Java API来执行SQL语句并处理结果。对于Sybase数据库,JDBC驱动主要有以下几种类型...

    impala数据库JDBC驱动集

    在本压缩包"impala数据库JDBC驱动集"中,我们很显然会找到用于连接和操作Impala数据库的JDBC驱动程序。 Impala的主要特点包括其并行查询执行模型,它能够快速地处理PB级别的数据,而无需将数据从HDFS或HBase中提取...

    mysql8版本jdbc驱动包

    mysql8-jdbc驱动,用于mysql数据库连接,jdbc驱动。

    sqlserver2005-jdbc驱动、sqlserver2008-jdbc驱动、mysql-jdbc驱动、oracle驱动-

    - SQL Server 2005和2008 JDBC驱动是Microsoft提供的用于Java应用程序与SQL Server之间的桥梁。这两个版本的驱动都是Type 4驱动,意味着它们是完全基于Java实现的,无需依赖于特定操作系统或数据库供应商的本地库。...

    达梦数据库JDBC驱动包合集包含MYSQL驱动包

    本篇将详细介绍达梦数据库JDBC驱动包及其在与MySQL数据库交互中的作用。首先,我们需要了解JDBC(Java Database Connectivity),它是Java语言连接数据库的标准接口,由Oracle公司开发,使得Java开发者能够通过标准...

    sql server jdbc驱动

    sql server jdbc驱动

    jdbc驱动jar包.zip

    在Java应用中,JDBC驱动程序扮演着至关重要的角色,它作为Java代码和数据库之间的桥梁,使得数据的查询、更新、插入和删除等操作变得简单。 "jdbc驱动jar包.zip"是一个包含JDBC驱动程序的压缩文件。通常,这个...

    最新Oracle_11g JDBC驱动包

    Oracle JDBC驱动包是用于Java应用程序与Oracle数据库之间通信的重要组件。它遵循Java Database Connectivity (JDBC) API标准,使得开发者可以使用Java语言高效地访问Oracle数据库。本文将深入探讨Oracle JDBC驱动的...

    mysql8.0jdbc驱动.zip

    MySQL 8.0 JDBC驱动是Java应用程序连接MySQL数据库的关键组件,它允许程序通过Java Database Connectivity (JDBC) API与MySQL数据库进行交互。JDBC是一种Java编程接口,它为开发人员提供了一种标准的方法来访问各种...

    数据库JDBC驱动程序包

    SQL Server JDBC驱动,也叫jTDS或Microsoft JDBC Driver,允许Java应用与SQL Server数据库通信。这个驱动支持不同的连接方式,如TCP/IP、命名管道等,满足不同网络环境的需求。 3. **Oracle JDBC驱动**: Oracle...

    PostgreSQL JDBC 驱动包,最新的基于 jdk 1.6 的 jdbc 驱动包

    PostgreSQL JDBC 驱动包,最新的基于 jdk 1.6 的 jdbc 驱动包

    mysql5.7.20的jdbc驱动

    本文将详细探讨“mysql5.7.20的jdbc驱动”这一主题,包括其重要性、功能、版本兼容性以及如何在Java项目中使用。 首先,MySQL 5.7.20 JDBC驱动程序是Java应用程序连接到MySQL数据库的关键组件。它提供了Java API,...

Global site tag (gtag.js) - Google Analytics