java中如何以windows集成方式連接SQL Server
Posted on 2009-09-24 12:27 邀月 閱讀(1555) 評論(0) 編輯 收藏 所屬分類: Eclipse 、NetBeans在《JDBC Driver For SQL2000/2005/2008》一文中,邀月介紹了如何下載并使用jdbc連接SQL Server,
今天有人問起,如何以windows集成方式連接SQL Server,這個以前真沒試過。
于是,打開netBeans測試了一下,代碼如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testsqlconn;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
/** *//**
*
* @author: Administrator:downmoon(3w@live.cn)
* @date:2009-9-23 18:42:32
* @Encoding:UTF-8
* @File:TestSqlbyDS/TestSqlbyDS.java
* @Package:testsqlconn
*/
public class TestSqlbyDS {
public TestSqlbyDS(){}
public void GetResutls()
{
// Declare the JDBC objects.
Connection con = null;
CallableStatement cstmt = null;
ResultSet rs = null;
try {
// Establish the connection.
SQLServerDataSource ds = new SQLServerDataSource();
ds.setIntegratedSecurity(true);
ds.setServerName("ap4\\agronet08");//數據庫實例名
ds.setPortNumber(1433);
ds.setDatabaseName("AdventureWorksLT2008");//Database Name
con = ds.getConnection();
// Execute a SQL that returns some data.
//cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");
//cstmt.setInt(1,50);
cstmt = con.prepareCall(" select top 10 * from [SalesLT].[Product] ");//Sql
rs = cstmt.executeQuery();
// Iterate through the data in the result set and display it.
while (rs.next()) {
System.out.println("Product: " + rs.getString("Name") + ", " + rs.getString("ProductNumber"));
System.out.println("ListPrice: " + rs.getString("ListPrice"));
System.out.println();
}
} // Handle any errors that may have occurred.
catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
}
}
if (cstmt != null) {
try {
cstmt.close();
} catch (Exception e) {
}
}
if (con != null) {
try {
con.close();
} catch (Exception e) {
}
}
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testsqlconn;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
/** *//**
*
* @author: Administrator:downmoon(3w@live.cn)
* @date:2009-9-23 18:42:32
* @Encoding:UTF-8
* @File:TestSqlbyDS/TestSqlbyDS.java
* @Package:testsqlconn
*/
public class TestSqlbyDS {
public TestSqlbyDS(){}
public void GetResutls()
{
// Declare the JDBC objects.
Connection con = null;
CallableStatement cstmt = null;
ResultSet rs = null;
try {
// Establish the connection.
SQLServerDataSource ds = new SQLServerDataSource();
ds.setIntegratedSecurity(true);
ds.setServerName("ap4\\agronet08");//數據庫實例名
ds.setPortNumber(1433);
ds.setDatabaseName("AdventureWorksLT2008");//Database Name
con = ds.getConnection();
// Execute a SQL that returns some data.
//cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");
//cstmt.setInt(1,50);
cstmt = con.prepareCall(" select top 10 * from [SalesLT].[Product] ");//Sql
rs = cstmt.executeQuery();
// Iterate through the data in the result set and display it.
while (rs.next()) {
System.out.println("Product: " + rs.getString("Name") + ", " + rs.getString("ProductNumber"));
System.out.println("ListPrice: " + rs.getString("ListPrice"));
System.out.println();
}
} // Handle any errors that may have occurred.
catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
}
}
if (cstmt != null) {
try {
cstmt.close();
} catch (Exception e) {
}
}
if (con != null) {
try {
con.close();
} catch (Exception e) {
}
}
}
}
}
結果提示:找不到sqljdbc_auth.dll,到下載的壓縮包里看了下:auth\x86,auth\x64\,auth\IA64下都有該文件,直接復制auth\x86\sqljdbc_auth.dll到
E:\Java\jdkUpdate\jre\lib\ext\下,這是本機的jre路徑。
然后運行。成功!
后來再試了下,發現直接用URL方式也可以實現:
代碼如下:


TestSqlUserPwdURL test3=new TestSqlUserPwdURL();
String sql="SELECT top 10 ProductID,[Name],ProductNumber,Modifieddate FROM [SalesLT].[Product] ";
test3.ShowProduct("192.168.30.99\\agronet08", "AdventureWorksLT2008", "sa", "sa", 1433, sql);
小結:java的jdbc集成windows方式連接共有兩種方式:data source object和URL方式,分別見第一種和第二種。String sql="SELECT top 10 ProductID,[Name],ProductNumber,Modifieddate FROM [SalesLT].[Product] ";
test3.ShowProduct("192.168.30.99\\agronet08", "AdventureWorksLT2008", "sa", "sa", 1433, sql);
如果有任何問題,請聯系邀月。
助人等于自助! 3w@live.cn
邀月注:本文版權由邀月和博客園(BlogJava)共同所有,轉載請注明出處。
助人等于自助! 3w@live.cn
助人等于自助! 3w@live.cn