11月17日,微软项目经理 Andrea Lam 在开发者社区地宣布 SQL Server 的
Microsoft JDBC
驱动程序开源。希望通过驱动程序的开源,从社区获得更快的反馈,更快的发布节奏,以及基于
Java 开发人员需要支持的方案开发新功能。
详情请查看公告视频。

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

开源的驱动程序包括:

Microsoft SQL Server 2005 JDBC Driver 1.2

,支持sql2000/sql2005/sql2008,下载地址:

今天试了下最新的

  • 根据 MIT 许可证在 GitHub
    上发布的 Java 源代码

  • Maven 和 Ant 构建脚本(构建您自己的 jars 以支持 JDBC 4.1
    规范(用于JRE 7)或 JDBC 4.2 规范(用于JRE 8))

Microsoft SQL Server JDBC Driver 2.0

.据官方说明,支持sql2000/sql2005/sql2008,

不过仅支持jre6及以上版本。而且文件也成了两个sqljdbc.jar 或
sqljdbc4.jar,下载后将两个文件放入jrelibext。替换原来的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)。*

通过开源,已经在 Maven Central Repository 上提供了驱动程序。有两个 jars
可以支持 JRE 7 或
8。它们可以通过更改版本“6.1.0.jre8”或“6.1.0.jre7”来选择。通过将以下代码添加到
POM 文件以将其包含为项目中的依赖项,将 JDBC 驱动程序添加到 Maven
项目中。

选择正确的 JAR 文件

Microsoft SQL Server JDBC
Driver 2.0 提供两个类库文件:sqljdbc.jar
sqljdbc4.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.0chshelpdefault.htm

 

 

网站地图xml地图