欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

从ms2000 转到2005 出现的错误:Microsoft][SQLServer 2000 Driv

程序员文章站 2022-04-20 20:28:01
...

转载的地址:http://www.shamoxia.com/html/y2010/2249.html 最近针对一个比较老的数据库开发一个个性化论文推荐系统,由于系统比较陈旧,用的数据库的平台还是sqlserver2000,大家现在其实已经都用2005或者2008甚至更高的版本了,但是为了和系统兼容,我们

转载的地址:http://www.shamoxia.com/html/y2010/2249.html

最近针对一个比较老的数据库开发一个个性化论文推荐系统,由于系统比较陈旧,用的数据库的平台还是sqlserver2000,大家现在其实已经都用2005或者2008甚至更高的版本了,但是为了和系统兼容,我们也还是用2000系统吧。

但是在开发过程中,在进行数据导入的时候,经常遇到这种问题:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes…..

经过搜索原因,是因为原来数据库中有些表中的有些text类型的字段为“”,不是null也不是NULL,就是“”,这就产成了问题,这个根据说明是jdbc 2000的一个bug,用到的jar包就是msbase.jar、mssqlserver.jar和msutil.jar,但是现在遇到这种bug,就不能用这种jdbc驱动了。

那我们就升级jdbc驱动吧,现在最新的是Microsoft SQL Server JDBC Driver 3.0,那我们就下载,用之。

由于在互操作性方面的不懈努力,Microsoft 已发布新的 Java 数据库连接 (JDBC) 驱动程序。所有 SQL Server 用户都可以免费下载 SQL Server JDBC Driver 3.0,并可以从任何 Java 应用程序、应用程序服务器或支持 Java 的小程序访问 SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000。这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform Enterprise Edition 5 及更高版本中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。

下载,安装,会有一个默认的文件夹Microsoft SQL Server JDBC Driver 3.0,里面有sqljdbc_3.0,然后不断进入每层目录,会发现有两个jar文件:sqljdbc4.jar和sqljdbc.jar,根据你的开发平台的不同,要选择不同的jar,一个jar就足够了。

注意: sqljdbc4.jar 类库要求使用 6.0 或更高版本的 Java 运行时环境 (JRE)。

由于我们的开发平台是myeclipse6.5+jdk1.6+tomcat5.5(关于tomcat版本不兼容之小问题看此博文),用的compile是6.0,所以就得使用sqljdbc4.jar,不然会报错的,然后程序中链接数据库也需要修改了:

使用 sqljdbc.jar 类库时,应用程序必须首先按如下所示注册驱动程序:
查看源代码
打印帮助
1 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

加载驱动程序后,可通过使用连接 URL 和 DriverManager 类的 getConnection 方法来建立连接:
查看源代码
打印帮助
1 String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
2 "databaseName=AdventureWorks;user=MyUserName;password=*****;";
3 Connection con = DriverManager.getConnection(connectionUrl);

在 JDBC API 4.0 中,DriverManager.getConnection 方法得到了增强,可自动加载 JDBC Driver。因此,使用 sqljdbc4.jar 类库时,应用程序无需调用 Class.forName 方法来注册或加载驱动程序。

行了,应该可以使用了