新聞中心
servlet 數(shù)據(jù)庫訪問
本教程假定您已經(jīng)了解了 JDBC 應(yīng)用程序的工作方式。在您開始學(xué)習(xí) Servlet 數(shù)據(jù)庫訪問之前,請確保您已經(jīng)有適當(dāng)?shù)?JDBC 環(huán)境設(shè)置和數(shù)據(jù)庫。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)坡頭免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
從基本概念下手,讓我們來創(chuàng)建一個(gè)簡單的表,并在表中創(chuàng)建幾條記錄。
創(chuàng)建數(shù)據(jù)庫表
在測試數(shù)據(jù)庫 TEST 中創(chuàng)建 Employees 表,請按以下步驟進(jìn)行:
步驟 1:
打開命令行提示符(Command Prompt),并更改進(jìn)入到安裝目錄,如下所示:
C:\> C:\>cd Program Files\MySQL\bin C:\Program Files\MySQL\bin>
步驟 2:
登錄到數(shù)據(jù)庫,如下所示:
C:\Program Files\MySQL\bin>mysql -u root -p Enter password: ******** mysql>
步驟 3:
在測試數(shù)據(jù)庫 TEST 中創(chuàng)建 Employee 表,如下所示:
mysql> use TEST;
mysql> create table Employees
(
id int not null,
age int not null,
first varchar (255),
last varchar (255)
);
Query OK, 0 rows affected (0.08 sec)
mysql>
創(chuàng)建數(shù)據(jù)記錄
最后,在 Employee 表中創(chuàng)建幾條記錄,如下所示:
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
mysql>
訪問數(shù)據(jù)庫
下面的實(shí)例演示了如何使用 Servlet 訪問 TEST 數(shù)據(jù)庫。
// 加載必需的庫
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DatabaseAccess extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// JDBC 驅(qū)動(dòng)器名稱和數(shù)據(jù)庫的 URL
static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
static final String DB_URL="jdbc:mysql://localhost/TEST";
// 數(shù)據(jù)庫的用戶名與密碼,需要根據(jù)自己的設(shè)置
static final String USER = "root";
static final String PASS = "password";
// 設(shè)置響應(yīng)內(nèi)容類型
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "數(shù)據(jù)庫結(jié)果";
String docType =
"\n";
out.println(docType +
"\n" +
"" + title + " \n" +
"\n" +
"" + title + "
\n");
try{
// 注冊 JDBC 驅(qū)動(dòng)器
Class.forName("com.mysql.jdbc.Driver");
// 打開一個(gè)連接
Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 執(zhí)行 SQL 查詢
Statement stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
// 展開結(jié)果集數(shù)據(jù)庫
while(rs.next()){
// 通過字段檢索
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
// 輸出數(shù)據(jù)
out.println("ID: " + id + "
");
out.println(", Age: " + age + "
");
out.println(", First: " + first + "
");
out.println(", Last: " + last + "
");
}
out.println("");
// 完成后關(guān)閉
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 處理 JDBC 錯(cuò)誤
se.printStackTrace();
}catch(Exception e){
// 處理 Class.forName 錯(cuò)誤
e.printStackTrace();
}finally{
// 最后是用于關(guān)閉資源的塊
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
}
現(xiàn)在讓我們來編譯上面的 Servlet,并在 web.xml 文件中創(chuàng)建以下條目:
....
DatabaseAccess
DatabaseAccess
DatabaseAccess
/DatabaseAccess
....
現(xiàn)在調(diào)用這個(gè) Servlet,輸入鏈接:http://localhost:8080/DatabaseAccess,將顯示以下響應(yīng)結(jié)果:
數(shù)據(jù)庫結(jié)果 ID: 100, Age: 18, First: Zara, Last: Ali ID: 101, Age: 25, First: Mahnaz, Last: Fatma ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal
網(wǎng)頁題目:創(chuàng)新互聯(lián)Servlet教程:Servlet數(shù)據(jù)庫訪問
本文地址:http://m.fisionsoft.com.cn/article/ccojhcp.html


咨詢
建站咨詢
