处理连接
以下各部分提供了使用 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;encrypt=true;database=AdventureWorks;integratedSecurity=true;"
Connection con = DriverManager.getConnection(connectionUrl);
此技术将通过使用驱动程序列表中第一个可以与给定 URL 成功连接的可用驱动程序,创建数据库连接。
注意
使用 sqljdbc4.jar 类库时,应用程序无需使用 Class.forName 方法显式注册或加载驱动程序。 调用 DriverManager 类的 getConnection 方法时,会从已注册的 JDBC 驱动程序集中找到相应的驱动程序。 有关详细信息,请参阅“使用 JDBC Driver”。
使用 SQLServerDriver 类创建连接
如果必须为 DriverManager 指定驱动程序列表中的特定驱动程序,可以使用 SQLServerDriver 类的 connect 方法来创建数据库连接,如下所示:
Driver d = (Driver) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String connectionUrl = "jdbc:sqlserver://localhost;encrypt=true;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;encrypt=true;integratedSecurity=true;"
若要连接到服务器上的特定端口,请使用以下示例:
String url = "jdbc:sqlserver://MyServer:1533;encrypt=true;integratedSecurity=true;"
若要连接到服务器上的命名实例,请使用以下示例:
String url = "jdbc:sqlserver://209.196.43.19;encrypt=true;instanceName=INSTANCE1;integratedSecurity=true;"
若要连接到服务器上的特定数据库,请使用以下示例:
String url = "jdbc:sqlserver://172.31.255.255;encrypt=true;database=AdventureWorks;integratedSecurity=true;"
若要查看更多连接 URL 示例,请参阅生成连接 URL。
创建有自定义登录超时的连接
如果必须为服务器负载或网络流量进行调整,可以创建有特定登录超时值(以秒为单位)的连接,如以下示例所示:
String url = "jdbc:sqlserver://MyServer;encrypt=true;loginTimeout=90;integratedSecurity=true;"
创建有应用程序级别标识的连接
如果必须记录日志并进行分析,则必须将连接标识为源于特定应用程序,如以下示例所示:
String url = "jdbc:sqlserver://MyServer;encrypt=true;applicationName=MYAPP.EXE;integratedSecurity=true;"
关闭连接
可以通过调用 SQLServerConnection 类的 close 方法显式地关闭数据库连接,如下所示:
con.close();
这将释放 SQLServerConnection 对象正在使用的数据库资源,或使连接返回到池方案中的连接池。
注意
调用 close 方法还将回滚所有挂起的事务。