JAVA與SQLServer資料庫連接共有兩種方式:
1 jdbc-odbc橋方式
1.1 建立ODBC資料來源:設定——〉控制台——〉管理工具——〉資料來源(ODBC)——〉系統DSN——〉添加——〉選擇SQLServer驅動——>填寫資料來源名字——〉選擇伺服器(本機伺服器可以寫.)——〉選擇登陸方式(預設使用windows NT驗證)——〉更改預設資料庫為所有資料庫——〉完成測試成功則建立完畢。
1.2 匯入包:import java.sql.*;
1.3 裝載驅動:
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); 或者:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 第一種方式比較常用,也容易理解;
1.4 建立串連:
Connection con = DriverManager.getConnection("jdbc:odbc:xx"); 其中xx是1.1建立的資料來源名字,如果建立的資料來源選擇的windowsNT驗證方式,則上面語句即可;如果1.1所建立的資料來源登陸方式選擇的是SQL使用者驗證,則這裡要寫成:
Connection con = DriverManager.getConnection("jdbc:odbc:xx","
使用者名稱
","
密碼
");其中的"使用者名稱","密碼"分別是SQLServer所建立的“登陸”使用者,並具有對所用庫的操作許可權;
1.5 建立載體:
Statement st = con.createStatement();
1.6 發出資料請求:查詢資料操作:
ResultSet rs = st.executeQuery("select * from titles"); 該語句將sql語句傳遞給資料庫並返回一個結果集rs,即查詢結果放在rs對象中; 更新資料操作:
int count=st.executeUpdate(
"update USERS set username='aaa' where id=3"
);
所有對資料庫進行的具有更新性質的操作(包含update,insert,delete等)都要調用這個方法,返回結果是一個整數,即該操作所影響的行數;
1.7 處理結果集:
rs.next()將結果集rs中的行指標向後移動一行,注意行指標最初在第一行之前,並沒有指向第一行。該方法返回一個布爾值,如果是true則表示可以移動到下一行,否則表示已經移動到記錄集末尾;
rs.getString()如果移動到某行,可以通過該方法擷取該行的某列資料,其調用方式是:
rs.getString("
列名
")或者
rs.getString(
列序號
)
注意:列序號是從1開始
1.8 獲得中繼資料資訊(表的列定義資訊):
ResultSetMetaData meta = rs.getMetaData();
rs.getMetaData()返回結果集rs的元資訊(結果集的列定義資訊)
meta.getColumnCount()返回中繼資料中的列的數量;
meta.getColumnName(
列序號)返回中繼資料中的某列的列名; 其常用方式是:ResultSetMetaData meta = r.getMetaData(); for (int i = 1; i <= meta.getColumnCount(); i++) { System.out.print(meta.getColumnName(i)+" ");//欄位名稱 } System.out.println();
1.9 關閉資料庫各對象:按照建立順序逆序關閉各對象:
rs.close();//關閉結果集
st.close();//關閉載體
conn.close();//關閉串連
2 JDBC直接連接SQLServer資料庫注意:l 該方法
不需要建立ODBC資料來源;l 需要配置SQLServer資料庫屬性中的安全項目中為SQL和windowsNT系統驗證模式。
2.1 配置jdk加入微軟的jar包
msbase.jar
mssqlserver.jar
msutil.jar
2.2 裝載驅動:
DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
2.3 建立串連:
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=
庫名
","
使用者名稱
","
密碼
");
其中:l
//localhost是資料庫的主機地址,本地機即是localhost;l
1433為資料庫連接埠號碼,預設是1433,如果資料庫配置不是該連接埠需要對應修改;l
庫名為所要操作的資料庫名字,注意不是表名;l
使用者名稱、密碼為SQLServer系統設定“登入”,並具有對庫名所指資料庫的操作許可權,預設可以用sa;
2.4 其他步驟說明:以上完成後,其他步驟和使用方法完全同第1種方式一致。 一般以JDBC直接連接的常用程式碼片段如下: String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mini"; String user="sa"; //使用者名稱 String password="";//密碼 try { // 裝載驅動程式 DriverManager. registerDriver (new com.microsoft.jdbc.sqlserver.SQLServerDriver()); //建立串連 Connection conn = DriverManager.getConnection(dbUrl,user,password); Statement st = conn.createStatement(); // 執行,獲得資料集 ResultSet rs =st.executeQuery("SELECT * FROM users"); //獲得中繼資料 ResultSetMetaData meta = rs.getMetaData(); for (int i = 1; i <= meta.getColumnCount(); i++) { System.out.print(meta.getColumnName(i)+" ");//欄位名稱 } System.out.println(); //迴圈列印結果中的資訊 while(r.next()) { System.out.println(rs.getString(1)+" "+rs.getString(2) +" "+ rs.getString(3) ); } //關閉 rs.close(); st.close();conn.close(); } catch(Exception e) { e.printStackTrace(); }