使用连接

以下各部分提供了使用 Microsoft JDBC Driver for SQL Server 的 SQLServerConnection 类来连接到 SQL Server 数据库的不同方法的示例。

如果在使用 JDBC 驱动程序连接到 SQL Server 时遇到问题，请参阅“连接疑难解答”获取有关解决方法的建议。

# 使用 DriverManager 类创建连接

创建到 SQL Server 数据库的连接的最简便方法是加载 JDBC 驱动程序，然后调用 DriverManager 类的 getConnection 方法，如下所示：

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;integratedSecurity=true;"
    Connection con = DriverManager.getConnection(connectionUrl);

此技术将通过使用驱动程序列表中第一个可以与给定 URL 成功连接的可用驱动程序，创建数据库连接。

使用 sqljdbc4.jar 类库时，应用程序无需使用 Class.forName 方法显示注册或加载驱动程序。调用 DriverManager 类的 getConnection 方法时，会从已注册的 JDBC Driver 集中找到相应的驱动程序。有关详细信息，请参阅“使用 JDBC Driver”。

# 使用 SQLServerDriver 类创建连接

如果必须为 DriverManager 指定驱动程序列表中的特定驱动程序，可以使用 SQLServerDriver 类的 connect 方法来创建数据库连接，如下所示：

    Driver d = (Driver) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
    String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;integratedSecurity=true;"
    Connection con = d.connect(connectionUrl, new Properties());

# 使用 SQLServerDataSource 类创建连接

如果必须使用 SQLServerDataSource 类创建连接，可以先使用此类的各种 setter 方法，然后调用 getConnection 方法，如下所示：

    SQLServerDataSource ds = new SQLServerDataSource();
    ds.setUser("MyUserName");
    ds.setPassword("*****");
    ds.setServerName("localhost");
    ds.setPortNumber(1433);
    ds.setDatabaseName("AdventureWorks");
    Connection con = ds.getConnection();

# 创建目标为非常特殊的数据源的连接

如果必须创建目标为非常特殊的数据源的数据库连接，可以采用多种方法。每种方法取决于使用此连接 URL 设置的属性。

若要连接到远程服务器上的默认实例，请使用：

String url = "jdbc:sqlserver://MyServer;integratedSecurity=true;"

若要连接到服务器上的特定端口，请使用：

String url = "jdbc:sqlserver://MyServer:1533;integratedSecurity=true;"

若要连接到服务器上的指定实例，请使用：

String url = "jdbc:sqlserver://209.196.43.19;instanceName=INSTANCE1;integratedSecurity=true;"

若要连接到服务器上的特定数据库，请使用：

String url = "jdbc:sqlserver://172.31.255.255;database=AdventureWorks;integratedSecurity=true;"

有关连接 URL 实例的详细信息，请参阅创建连接 URL。

# 创建具有自定义登录超时的连接

如果必须调节服务器负载或网络流量，可以创建具有特定登录超时值（以秒为单位）的连接，如下所示：

String url = "jdbc:sqlserver://MyServer;loginTimeout=90;integratedSecurity=true;"

# 创建具有应用程序级别标识的连接

如果必须记录日志并进行分析，则必须将连接标识为源于特定应用程序，如下所示：

String url = "jdbc:sqlserver://MyServer;applicationName=MYAPP.EXE;integratedSecurity=true;"

# 关闭连接

可以通过调用 SQLServerConnection 类的 close 方法显式地关闭数据库连接，如下所示：

con.close();

这将释放 SQLServerConnection 对象正在使用的数据库资源，或使连接返回到池方案中的连接池。

调用 close 方法还将回滚所有挂起的事务。

# 请参阅

通过 JDBC 驱动程序连接到 SQL Server
发送有关本主题的反馈至 Microsoft。

© 2012 Microsoft。保留所有权利。