摘 要:JSP技術有多種方式訪問WEB數據庫,比如JDBC的4種驅動程序分別訪問數據庫、JavaBean訪問數據庫、連接池技術等。這里講的是數據庫的連接,操縱數據庫可以用SQL語句或者ResetSet對象對數據庫進行操作等。
關鍵詞:數據庫 數據庫連接 JDBC
很多朋友在初學JSP的時候對數據庫的連接感到非常困難,所以我寫這篇文章供大家參考,期望對讀者有所幫助。
一、JDBC技術技術工作原理
JDBC是Java數據庫連接技術的簡稱,是為各種常用數據庫提供無縫連接的技術。JDBC技術是由Sun的Javasoft公司制定的。JDBC定義了Java數據同SQL數據之間的程序設計接口。JavaSoft公司開發了JDBCAPI,JDBCAPI是一個標準統一的SQL數據存取接口。JDBC在Web和Internet應用程序中的作用和ODBC在Windows系列平臺應用程序中的作用類似。Java是“一次編寫,到處運行”的語言。JDBC擴展了Java語言的功能,使用JDBC向各種關系數據庫發送SQL語
句很容易。將Java和JDBC結合起來,將會使程序經過一次編譯即可在其他任何平臺上運行。
二、JDBC四種類型驅動
1.JDBC-ODBC Bridge
JDBC-ODBC橋驅動程序為Java應用程序提供了一種把JDBC調用映射為ODBC調用的方法。因此,需要在客戶端機器上安裝一個ODBC驅動。通常只運行在Windows系統,不推薦這種驅動程序,但它可以減少開發人員進行企業開發的麻煩。
2.JDBC-Native Bridge
JDBC-Native橋提供了一個建筑在本地數據庫驅動上的JDBC接口。使用它也會失去JDBC平臺無關性的好處,并且需要安裝客戶端的本地代碼。現在大多數數據庫廠商都在數據庫產品中提供該橋驅動程序,這些驅動程序的性能比JDBC-ODBC橋驅動程序好。
3.JDBC Network Bridge
JDBC Network橋不需要客戶端的數據庫驅動,而是使用網絡-服務器中層來訪問一個數據庫。它是與平臺無關的,很適合用作Internet的應用。
4.Pure Java JDBC Driver
純Java驅動運行在客戶端,并且直接訪問數據庫,因此運行這個模式要使用一個兩層的體系。要在一個n層的體系中使用該類型的驅動,可以通過一個包含有數據訪問代碼的EJB,并且讓該EJB為它的客戶端提供一個與數據庫無關的服務。它為Java應用程序提供了一種進行JDBC調用的機制。
三、JDBC接口
1.Driver
Driver的定義很簡單,只須給出class name。如果使用JDBC-ODBC Bridge Driver,則定義為:
Class.forname(“sun.jdbc.odbc.JdbcOdbcDriver”);
如果使用JDBC Driver,定義如下:
Class.forname(“jdbc.driver_class_name”);
2.DriverManager
要創建一個連接對象實例,必須以數據庫統一資源定位器作為參數去激發DriverManager的的getConnection()方法。而所謂的數據庫統一資源定位器(URL)是指一個完全合格的數據庫連接的名字,該名字表示要連接的數據庫和數據庫連接程序。用JDBC:PROTOCOL:NAME的字符串來表示,如jdbc:oracle:thin@localhost:1521:oral。
JDBC是指URL中所用的數據庫驅動程序類型關鍵字。
PROTOCOL是指用戶要連接的數據庫的類型。
NAME提供建立連接時所需的數據庫類型的額外信息。
DRIVERMANAGER類上存在3中形式的GETCONNECTION()方法。
(1)getConnnection(String url):只是簡單地給定數據庫URL,然后嘗試連接。
(2)getConnnection(String url,String String PASSWORD):給定數據庫URL、數據庫的用戶名、數據庫的用戶使用的密碼,然后嘗試連接。
(3)getConnnection(String url,java.util.Properties information):給定數據庫的URL以及一個屬性集合作為參數,然后嘗試連接。
3.Connection
Connection對象是代表與數據庫的連接,也就是在已經加載的Driver和數據庫之間建立連接。必須創建一個Connection class的實例,其中包括你的數據庫的信息。一個應用程序可與單個數據庫有一個或多個連接,或者可與許多數據庫有連接。
4.Statement
Statement對象用于將SQL語句發送到數據庫中。它有3種執行SQL語句的方法:executeQuery、executeUpdate和execute。
5.ResultSet
執行SQL語句,則ResultSet會包含符合SQL語句中條件的所有行。通過get方法,可以訪問當前行中的不同列,get方法也提供了對這些行中數據的訪問。
JSP連接數據庫由以上知識決定,先出給一個連接Sql Server7.0/2000數據庫實例
<%Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();
String url = “jdbc:microsoft:sqlserver: // localhost: 1433;Database Name=pubs”;
//pubs為你的數據庫的
String user=“sa”;
String password=“”;
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt= conn.createStatement(Result Set.TYPE _ SCROLL _ SENSITIVE,Result Set.CONCUR _ UPDATABLE);
String sql=“select * from test”;
ResultSet rs=stmt.executeQuery(sql);
......
%>
參考文獻:
[1]馮燕奎.JSP實用案例教程.清華大學出版社,2004.5.
[2]王夕寧.JSP通用模塊及典型系統開發實例導航.人民郵電出版社,2006.2.
[3]向學哲.JSP程序設計.人民郵電出版社,2006.1.