邀月

从.net中走来的Java爱好者
posts - 22, comments - 10, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JDBC Driver For SQL2000/2005/2008(downmoon)

Posted on 2009-07-16 13:51 邀月 阅读(4088) 评论(4)  编辑  收藏 所属分类: Eclipse

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

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.jarsqljdbc4.jar,具体使用哪个文件取决于首选的 Java 运行时环境 (JRE) 设置。有关选择哪个 JAR 文件的详细信息,请参阅 JDBC Driver 的系统要求


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

注意:JDBC Driver 1.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]]

例:

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

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





邀月注:本文版权由邀月和博客园(BlogJava)共同所有,转载请注明出处。
助人等于自助!   3w@live.cn

评论

# re: JDBC Driver2.0连接的两个问题(downmoon)  回复  更多评论   

2009-07-16 16:53 by 隔叶黄莺
还没在项目中使用过 Sql Server,好像不少项目用的 Sql Server+java 组合。个人觉得这个组合有点怪,Sql Server 不参跨平台,而 Java 总是以跨平台而自得,不过通常DB和应用是分离的,到也无碍。

# re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登录]  回复  更多评论   

2009-09-25 09:51 by 小人物
其实数据库和JAVA程序不一定放在同一台服务器上面的。所以java+SqlServer、
并不奇怪。。。

# re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登录]  回复  更多评论   

2009-09-25 09:56 by 小人物
个人习惯用jtds,第三方出的

# re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登录]  回复  更多评论   

2009-12-23 21:38 by 新手上路
水平高,佩服。
因为我到现在还没搞掂。

只有注册用户登录后才能发表评论。


网站导航: