JDBC Driver2.0的两个连接问题

开发 后端
微软的JDBC Driver 2.0 提供两个类库文件:sqljdbc.jar和sqljdbc4.jar,具体使用哪个文件取决于首选的Java运行时环境 (JRE) 设置。

机器上配置的JDK为1.6,SQL2005/2008,而JDBCDriver一直用

Microsoft SQL Server 2005 JDBC Driver 1.2,支持sql2000/sql2005/sql2008,下载地址:
http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=zh-cn

今天试了下最新的

Microsoft SQL Server JDBC Driver 2.0,据官方说明,支持sql2000/sql2005/sql2008,下载地址:

http://msdn.microsoft.com/zh-cn/library/ms378422.aspx

不过仅支持JRE6及以上版本。而且文件也成了两个sqljdbc.jar 或 sqljdbc4.jar,下载后将两个文件放入jre\lib\ext。替换原来的sqljdbc.jar。结果运行出错:

此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版。请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库。

重启Eclipse,还是出错。后来查下MSDN,看到这么一段:

必须确保 CLASSPATH 语句仅包含一个 Microsoft SQL Server JDBC driver,例如 sqljdbc.jar 或 sqljdbc4.jar。sqljdbc4.jar 类库要求使用 6.0 或更高版本的 Java 运行时环境 (JRE)。

选择正确的 JAR 文件

Microsoft SQL Server JDBC Driver 2.0 提供两个类库文件:sqljdbc.jar 和 sqljdbc4.jar,具体使用哪个文件取决于首选的 Java 运行时环境 (JRE) 设置。有关选择哪个 JAR 文件的详细信息,请参阅 JDBC Driver 的系统要求。

于是:试着删除sqljdbc.jar,再重启Eclipse,运行成功!

注意:JDBC Driver 1.0以后,JDBC Driver  2.0连接串发生变化:

1、驱动程序与 SQL SERVER 2000 JDBC DRIVER 之间存在加载冲突

如果您在同一个进程中同时加载 Microsoft SQL Server 2000 JDBC Driver 和 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0),在某些情况下,2000 版 JDBC 驱动程序将错误地接受 DriverManager.getConnection 方法调用,而该调用实际是针对 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)的。

产生这一问题的原因是:如果首先加载 2000 版 JDBC 驱动程序,则此驱动程序将错误地接受 URL 前缀“jdbc:sqlserver://”。
若要解决此问题,请先加载 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)类,如下所示:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 版本 1.0 或更高版本
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 版

这将确保 URL 前缀“jdbc:sqlserver://”由 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)处理,而 URL 前缀“jdbc:microsoft:sqlserver://”由 2000 版 JDBC 驱动程序处理。

2、自1.2版本后支持实例名的连接    

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

例:

  1. String CLASSFORNAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";    
  2. String CONNECTSTR = "jdbc:sqlserver://ap2\\vegnet:1433;DatabaseName=agronet2008";    
  3. String user = "sa";    
  4. String password = "sa";    
  5. //***  
  6.  

更详细的示例,请查看下载后的\sqljdbc_2.0\chs\help\default.htm

 

【编辑推荐】

  1. 谈谈优化JDBC数据库编程
  2. 实例说明对MySQL的JDBC连接设置
  3. 浅谈如何利用JSP网页中JDBC代码连接MySQL
  4. 浅谈JDBC代码如何重复使用
  5. 如何进行Jython数据库插入(JDBC)
责任编辑:佚名 来源: BlogJava
相关推荐

2009-04-08 10:33:08

SQL ServerJDBC微软

2009-07-01 14:49:52

JSP空间租用

2021-02-05 17:35:07

数据高管CIO技术

2016-09-23 11:08:35

前端Javascript模块化

2015-05-15 09:37:24

iOS开发争议

2010-07-13 10:56:43

Perl print

2019-01-07 13:34:16

Riverbed数字性能数字体验管理

2023-04-12 08:14:10

mysql关联字段索引

2010-04-15 13:09:41

无线网卡故障问题

2010-03-04 09:50:14

企业定制软件开发

2012-09-20 14:58:47

2024-11-11 14:23:11

2009-11-26 10:14:37

路由器连接

2022-06-17 09:46:51

Chrome 102Chrome浏览器

2009-07-15 18:29:22

Jython应用

2010-07-02 12:26:51

LEACH协议

2013-10-22 10:08:59

linux安全权限配置权限管理

2013-10-24 15:15:45

Linux配置问题

2011-08-16 09:42:11

2022-05-31 09:01:13

GitHub工具安全
点赞
收藏

51CTO技术栈公众号