澳门新葡亰信誉平台游戏微软再发力,正式宣布开源 JDBC 驱动程序

by admin on 2020年4月22日

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)。*

首先,在连接数据库之前必须保证SQL Server 2012是采用SQL
Server身份验证方式而不是windows身份验证方式。如果在安装时选用了后者,则重新设置如下:

通过开源,已经在 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

 

 

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

 

JDBC 驱动程序可用于在任何地方连接到 SQL。 可使用它连接到SQL
Server(内部或云)、Azure SQL 数据库和 Azure SQL 数据仓库。 JDBC
驱动程序支持:

当你保证SQL Server 2012是采用SQL Server身份验证方式后,开始如下配置:

  • 始终加密

  • Azure Active Directory 身份验证

  • 表值参数

  • 国际化域名(IDN)

  • 参数化查询的扩展支持

  • 批量复制

  • 到 AlwaysOn 可用性组的透明连接

一、因为SQL Server 2012装好后,默认协议是没有开启的,所以要打开SQL
Server配置管理器中开启:

(文/开源中国)    

1、安装好SQL Server 2012后,运行 开始 → 所有程序 → Microsoft SQL Server
2012 → 配置工具 →SQL Server配置管理器,如下图1所示:

澳门新葡亰信誉平台游戏 1
图1

2、打开的窗口如下图所示。在左边栏找到 SQL
Server网络配置选项,点开它的小箭头,会看到“【你的数据库名】的协议” (图中是ERIC2012的协议),选中它,看右边栏。如下图2所示:

 

澳门新葡亰信誉平台游戏 2图2

(1)如果Named Pipes 未启用,则右键→启用

(2)右键单击 TCP/IP,选择 启用

(3)双击TCP/IP(右键→属性),在弹出的窗口中选择 “IP地址” 选项卡,将IP1和IP10的【IP地址】设为127.0.0.1,并将所有【IPx】的【已启用】设为是。接着,拖动下拉条到最下方,将 IPAll 中的【TCP端口】设成 【1433】,其余不变。如下图3和图4所示:

 

澳门新葡亰信誉平台游戏 3图3

 

澳门新葡亰信誉平台游戏 4图4

3、重新启动计算机。

4、接下来使用telnet命令测试1433端口是否打开。首先要保证telnet服务开启。开启win7
telnet的方法在这里:

 

5、完成上一步后。开始菜单 → 运行cmd → 输入:telnet 127.0.0.1
1433,(注意telnet与127之间有空格,1与1433之间有空格)。如下图:

 

澳门新葡亰信誉平台游戏 5图5

6、若提示“不能打开到主机的连接,在端口 1433: 连接失败”,则说明1433端口没有打开,需要重新进行以上配置。若连接成功,显示如图6所示:

 

澳门新葡亰信誉平台游戏 6图6

 

二、环境变量CLASSPATH配置:

1、下载Microsoft JDBC Driver 4.0 for SQL Server

在这里下载:

4.0版本支持的 SQL Server有:

Microsoft®SQL Server® 2012

Microsoft®SQL Server® 2008 R2

Microsoft®SQL Server® 2008

Microsoft®SQL Server® 2005

Microsoft®SQL Azure

 

下载sqljdbc_4.0.2206.100_chs.tar.gz(2.2M),解压文件,得到sqljdbc.jar和sqljdbc4.jar。如果你使用的是jre1.7版本,则忽略sqljdbc.jar(因为它用不了,而且如果和sqljdbc4.jar一起用会出错),只留下sqljdbc4.jar。

以下设置均针对jre1.7版本(1.7以下应该也适用):

在D盘新建一个文件夹,命名为sqljdbc4,将sqljdbc4.jar复制一个进去。

 

图7

2、右击 我的电脑 → 属性 → 高级系统设置(高级) → 环境变量,在系统变量中双击CLASSPATH变量(或选中CLASSPATH后 → 编辑),在最后面追加 “;D:sqljdbc4
sqljdbc4.jar” (注意最前面有个 ; )若不存在CLASSPATH,就新建CLASSPATH变量,并且将其值设为“D:sqljdbc4
sqljdbc4.jar”。如图8所示:

 

澳门新葡亰信誉平台游戏 7图8

3、连续点击 确定 以退出环境变量配置。

4、接下来的工作非常重要(因为没做我纠结了几天没成功)!!

有几个地方需要注意:

(1)我们需要将sqljdbc4.jar类库文件拷贝到D:Program
FilesJavajdk1.7.0jrelibext目录下。(看你安装在哪个盘,如果是C盘,则最前面的D改为C,下同)

 

(2)我们需要将sqljdbc4.jar类库文件拷贝到D:Program
FilesJavajre7libext目录下

 

 最好是,只要是jre文件夹,都复制一个sqljdbc4.jar到jre7libext里去!!

 

(3)如果是使用Tomcat做服务器(我使用的是Tomcat7),那么我们需要将sqljdbc4.jar类库文件拷贝到C:apache-tomcat-7.0.11lib目录下。

 

(4)如果是使用Tomcat做服务器,那么我们需要将sqljdbc4.jar类库文件拷贝到D:apache-tomcat-7.0.11webappsgaofeiWEB-INFlib目录下(gaofei目录是我的应用,这个路径相信你会看明白)

 

注意,只有sqljdbc4.jar !!如果把sqljdbc.jar和sqljdbc4.jar都拷在一起的话,这样就算你全都做对了,也会持续出现有“此驱动程序不支持JRE1.7,请使用支持JDBC4.0的sqljdbc4.jar的类库”的问题。因为jdk默认地选择了sqljdbc.jar(前面我已经提到,只留下sqljdbc4.jar)。

 

三、使用Eclipse测试连接SQL Server 2012数据库:

1、打开SQL Server 2012,在其中新建数据库 Test,然后退出SQL Server 2012。

2、运行Eclipse,新建一个Java Project 名为 Test。

3、右单击src,依次选择 Build Path → Configure Build
Path,在打开的窗口的右边选择 Libraries标签,然后单击 Add External
JARs,找到 sqljdbc4.jar 文件并打开,然后单击 OK 完成构建路径的配置。如图9(我是汉化版的):

 

澳门新葡亰信誉平台游戏 8图9

4、在Test中新建包pkg,在pkg中新建一个类Main,在其中输入代码如下:

packagepkg;

importjava.sql.*;

 

publicclass Main {

 publicstatic void main(String [] args)

 {

  StringdriverName=”com.microsoft.sqlserver.jdbc.SQLServerDriver”;

  StringdbURL=”jdbc:sqlserver://localhost:1433;DatabaseName=你的数据库名”;

  String userName=”填写你的用户名,我的是sa”;

  String userPwd=”填写你的密码”;

  try

  {

   Class.forName(driverName);

   ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd);

    System.out.println(“连接数据库成功”);

  }

  catch(Exception e)

  {

   e.printStackTrace();

   System.out.print(“连接失败”);

  }    

 }

}

 

温馨提示:如果要对数据库中的某个表进行操作,需要像这样子做:String sql =
“SELECT*  FROM [数据库名].[dbo].[表名] where xxx “; 例如String
sql = “SELECT*  FROM [metro].[dbo].[4]
wherexxx” 。注意,中括号是必要的,不能去掉。

 

5、点击右键,选择run as——>Java
Application, 控制台出现下图则连接成功!

 

澳门新葡亰信誉平台游戏 9图10

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图