JAVA與SQLServer資料庫連接總結

來源:互聯網
上載者:User

   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.jarmssqlserver.jarmsutil.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();              }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.