【轉】JSP中資料庫的一些操作

來源:互聯網
上載者:User

標籤:

1. JDBC驅動程式的類型 
  目前比較常見的JDBC驅動程式可分為以下四個種類: 
  (1)JDBC-ODBC橋加ODBC驅動程式 
  JavaSoft橋產品利用ODBC驅動程式提供JDBC訪問。注意,必須將ODBC二進位代碼(許多情況下還包括資料庫客戶機代碼)載入到使用該驅動程式的每個客戶機上。因此,這種類型的驅動程式最適合於企業網(這種網路上客戶機的安裝不是主要問題),或者是用Java編寫的三層結構的應用程式伺服器代碼。 
  (2)本地API 
  這種類型的驅動程式把客戶機API上的JDBC調用轉換為Oracle、Sybase、Informix、DB2或其它DBMS的調用。注意,象橋驅動程式一樣,這種類型的驅動程式要求將某些二進位代碼載入到每台客戶機上。 
  (3)JDBC網路純Java驅動程式 
  這種驅動程式將JDBC轉換為與DBMS無關的網路通訊協定,之後這種協議又被某個伺服器轉換為一種DBMS協議。這種網路伺服器中介軟體能夠將它的純Java客戶機串連到多種不同的資料庫上。所用的具體協議取決於提供者。通常,這是最為靈活的JDBC驅動程式。有可能所有這種解決方案的提供者都提供適合於Intranet用的產品。為了使這些產品也支援Internet訪問,它們必須處理Web所提出的安全性、通過防火牆的訪問等方面的其他需求。幾家提供者正將JDBC驅動程式加到他們現有的資料庫中介軟體產品中。 
  (4)本地協議純Java驅動程式 
  這種類型的驅動程式將JDBC調用直接轉換為DBMS所使用的網路通訊協定。這將允許從客戶機機器上直接調用DBMS伺服器,是Intranet訪問的一個很實用的解決方案。由於許多這樣的協議都是專用的,因此資料庫提供者自己將是主要來源,有幾家提供者已在著手做這件事了。 
據專家預計第(3)、(4)類驅動程式將成為從JDBC訪問資料庫的首方法。第(1)、(2)類驅動程式在直接的純Java驅動程式還沒有上市前會作為過渡方案來使用。對第(1)、(2)類驅動程式可能會有一些變種,這些變種要求有連接器,但通常這些是更加不可取的解決方案。第(3)、(4)類驅動程式提供了Java的所有優點,包括自動安裝(例如,通過使用JDBC驅動程式的appletapplet來下載該驅動程式)。

2. JDBC編程的步驟 
1)第一步:載入驅動程式
 //jdbc-odbc驅動
 try{ 
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}catch(ClassNotFoundException e){
 e.printStackTrace();
}
 載入其他各種不同驅動程式的方法如下:
 //sqlserver
 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
 //mysql
 Class.forName(“org.gjt.mm.mysql.Driver”);
 //oracle
 Class.forName(Oracle.jdbc.driver.OracleDriver);
 //Informix
 Class.forName(“com.informix.jdbc.IfxDriver”);
 //Sybase
 Class.forName(“com.sybase.jdbc2.jdbc.SybDriver”);
 //AS400
 Class.forName(“com.ibm.as400.access.AS400JDBCConnection”);
2)第二步:將“驅動程式”傳遞到DriverManager,然後獲得“串連”。
  DriverManager類的getConnection(String rul,String user,String password)方法用於建立與某個資料庫的串連。每個JDBC驅動程式使用一個專門的JDBC URL作為自我標識的一種方法。
  JDBC URL的格式為:jdbc:<子協議名>:<子名稱>,子協議與子名稱和JDBC驅動程式有關。
 //建立JDBC-ODBC驅動的串連
 try{
  String url=”jdbc:odbc:myodbc”;
  Connection con=DriverManager.getConnection(url);
  //或者
  //Connection con=DriverManager.getConnection(url,user,password);;
} catch(SQLException e){
 e.printStackTrace();
}
以下是串連各種不同的資料庫的URL編寫方法:
//sqlserver
 DriverManger.getConnection(“jdbc:Microsoft:sqlserver://主機:連接埠號碼;DatabaseName=資料庫名”,”使用者名稱”,”密碼”)
 //mysql
 DriverManger.getConnection(“jdbc:mysql://主機:連接埠號碼:資料庫名”,”使用者名稱”,”密碼”)
 //oracle
 DriverManger.getConnection(“jdbc:Oracle:thin:@主機:連接埠號碼:資料庫名”,”使用者名稱”,”密碼”)
 //Informix
 DriverManger.getConnection(“jdbc:informix-sqli://主機:連接埠號碼/資料庫名:INFORMIXSERVER=informix服務名”,”使用者名稱”,”密碼”)
 //Sybase
 DriverManger.getConnection(“jdbc:sybase:Tds:主機:連接埠號碼/資料庫名”,”使用者名稱”,””密碼)
 //AS400
 DriverManger.getConnection(“jdbc:as400://主機”,”使用者名稱”,”密碼”)
3)第三步:建立語句,Statement、PreparedStatement或CallableStatement,並將它們用於更新資料庫或執行查詢。
4)第四步:查詢並返回包含有已請求資料的ResultSet,該ResuletSet是按類檢索的。
5)顯示資料或根據得到的查詢結果完成商務邏輯處理。
6)第六步:最後關閉ResultSet(結果集)、Statement(語句對象)、Conection(資料庫連接)。

 

3. 資料庫各種串連方式執行個體分析
1)通過ODBC建立與資料庫的串連,建立資料來源的過程略掉,資料來源的名稱為myodbc,代碼:

<%@ page language="java" contentType="text/html; charset=GBK"%><%@ page import="java.sql.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <title>通過ODBC建立串連</title>  </head>    <body>  <%   Connection con = null;        try {            // 載入ODBC驅動            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");            // 通過驅動管理器(DriverManager)獲得串連            con = DriverManager.getConnection("jdbc:odbc:myodbc",                    "sa","");            // 如果串連不成功,就會出現異常,不會執行下面這個語句                        out.println("<H1>");            out.println("通過ODBC資料來源串連資料庫成功!");            out.println("</H1>");        } catch (Exception e) {// 如果出現異常,會列印堆棧裡異常的資訊            e.printStackTrace();        } finally {// 用完後,關閉串連,釋放資源            try {                if (con != null) // 防止出現記憶體泄露                    con.close();            } catch (Exception e) {                e.printStackTrace();            }        }     %>      </body></html>

  2)通過sqlserver提供驅動程式獲得串連,需要3個jar檔案:msbase.jar、mssqlserver.jar、msutil.jar,設定class環境變數,或者配置到WEB中,jar檔案部署,和所有的jar檔案一樣,想在整個WEB伺服器(我指Tomcat)中使用,就拷貝到Tomcat 6.0\lib目錄下,若在當前WEB應用中使用,拷貝到WEB應用的WEB-INF\lib目錄下。代碼:

 

<%@ page language="java" contentType="text/html; charset=GBK"%><%@ page import="java.sql.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <title>通過Sqlserver純驅動程式建立串連</title>  </head>    <body>  <%   Connection con = null;    try {        // 載入SQLSERVER的驅動程式                    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");        // 通過驅動來獲得一個串連        con = DriverManager.getConnection(                "jdbc:microsoft:sqlserver://localhost:1433;"                        + "databasename=pubs", "sa", "");            // 如果串連不成功,就會出現異常,不會執行下面這個語句                out.println("<H1>");        out.println("通過SQLServer純驅動程式串連資料庫成功!<br> con="+con);        out.println("</H1>");    } catch (Exception e) {// 如果出現異常,會列印堆棧裡異常的資訊        e.printStackTrace();    } finally {// 用完後,關閉串連,釋放資源        try {            if (con != null) // 防止出現記憶體泄露                con.close();        } catch (Exception e) {            e.printStackTrace();        }    }     %>      </body></html>

  其他詳見原http://www.blogjava.net/haizhige/archive/2008/10/21/235763.html

【轉】JSP中資料庫的一些操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.