Microsoft JDBC Driver 4.0 for SQL Server

在微软发布SQL Server 2012的前一天,也同时发布了针对SQL Server 2012的JDBC Driver 4,下载地址为:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=49C554CA-41A0-472C-B728-75DF5789369C

 

从 3.0 到 4.0 的更改:

1765616 对于 katmai 和更高版本,DatabaseMetadata.getTypeInfo 现在为 date、time、
datetime2、datetimeoffset 返回新 java.sql.Type 值。

1764334 增加了对于跟踪 JDBC XA 超时和 XID 的支持。

1750318 SQLServerDatabaseMetaData 函数现在可在重复使用入池连接时正确工作。

1768845 setTimestamp 和 updateTimestamp 的行为在关于往返方面已经一致。驱动程序会在将数据发送到
服务器之前先将其舍入到 7 位小数。

1770134 具有最大值 (23:59:59.999) 的时间后端类型上的 updateTime 现在可导致正确的舍入行为。

1761042 DataSource Boolean 属性现在会记录退出调用。

1750330 更新了 XA SQL 脚本以避免在首次运行时出现误导错误。

1761393 为 unwrap 方法改进了跟踪。

1945579 DatabaseMetaData.getSchemas 现在可针对所有排序规则与 SQL Azure 和 SQL Server 一起正常工作。

1963089 hostNameInCertificate 连接属性不再是针对 SQL Azure 验证 SSL 证书时所必需的。

1958531 如果不是为数据库镜像设置的服务器连接在登录过程中失败(例如,数据库不存在),驱动程序不会自动重试。

1954701 插入重复行时引发的异常现在包含 SQLState 23000。

2055259 改进了加载 sqljdbc_auth.dll 后集成身份验证失败时的错误信息。

2083373 针对 SQL Azure 的使用了无效参数的大型参数化查询现在引发异常时不关闭连接。

2084385 getDate、getTimestamp、getDateTimeOffset 现在返回所有日期都使用 JRE 1.7 的正确值。

2105115 从 DatabaseMetaData.getColumns 获取的 ResultSet 上的 getObject 现在可以正常工作。

 

注意:

1、该版本Microsoft JDBC Driver 4.0 for SQL Server的运行环境:Linux;Unix;Windows 7;Windows Server 2008 R2;Windows Vista。

换言之,不再支持win2003和XP。

2、支持的SQL Server 版本为:

  • Microsoft® SQL Server® 2012
  • Microsoft® SQL Server® 2008 R2
  • Microsoft® SQL Server® 2008
  • Microsoft® SQL Server® 2005
  • Microsoft® SQL AzureTM(新增)

不再支持SQL Server 2000及以下版本。而3.0则支持SQL Server 2000/2005/2008/2008r2版本。http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707

 

做了个测试,下载Microsoft JDBC Driver 4.0 for SQL Server,并解压,参照这篇文章http://www.cnblogs.com/downmoon/archive/2009/07/16/1524687.html ,复制sqljdbc4.dll,到JRE目录下,并添加引用。

不料在DEMO程序中一直提示无法连接,提示“无法创建下列URL的连接:jdbc:sqlserver://ap2\\vegnet:1433;DatabaseName=Db2010Demo”,我的连接串如下:

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
sqlserver.url=jdbc:sqlserver://ap2\\vegnet:1433;DatabaseName=Db2010Demo
sqlserver.user=demo
sqlserver.password=demo2012
sqlserver.maxconn=2000

确认用户名和密码无误,防火墙无误,于是怀疑该新驱动程序不支持非默认实例名的连接。换了另外服务器的默认的实例也不行。后来,发现自己的SQL Server 默认端口没有设置,

如下图:

邀月工作室

 

设置好端口,重新启动SQL Server服务。连接成功!!

 其他示例:

JDBC Driver For SQL2000/2005/2008

java中如何以windows集成方式连接SQL Server

posted @ 2012-03-11 12:13  邀月  阅读(6843)  评论(0编辑  收藏  举报