jsp訪問資料庫的過程與問題(通過web訪問資料庫的過程)

  • 1、在jsp編程中如何連接資料庫?
  • 2、jsp連接資料庫方法(詳細的)
  • 3、闡述JSP頁面直接訪問資料庫的主要步驟以及會使用到那些類和方法(假定使用MySql資料庫)
  • 4、簡述JSP的工作原理和訪問資料庫的一般步驟
  • 5、jsp怎麼連接資料庫
  • 6、【滿分急求】JSP資料庫操作過程是什麼?

用JDBC技術

創建資料庫連接,分為以下幾步:

1.裝載並註冊資料庫的JDBC驅動程序

2.取得資料庫連接

3.建立Statement 對象

4.準備並執行調用SQL語句

5.處理ResultSet中的記錄集

6.釋放資源

第一步

載入驅動程序

try{ //裝載MySQL資料庫驅動

Class.forName(“com.mysql.jdbc.Driver”);

}

catch(ClassNotFoundException e)

{

e.printStackTrace();

}

注意:在使用JDBC之前,要在文件前導入有關SQL的類即

import java.sql.*

第二步

取得資料庫連接

try{

String url=”jdbc:mysql://localhost:3306/student;

String user=”root”;

String password=”1234″;

con=DriverManager.getConnection(url,user,password);

}

catch(SQLException e)

{

e.printStackTrace();

}

第三步

建立Statement 對象

try{

Statement sql=con.createStatement();

}

catch(SQLException e)

{

e.printStackTrace();

}

第四步

執行各種SQL語句

try{

ResultSet rs=sql.executeQuery(

“select * from student”);

}

catch(SQLException e)

{

e.printStackTrace();

}

第五步

獲取查詢結果

ResultSet rs=sql.executeQuery(

“select * from student”);

while(rs.next())

{

rs.getString(2)或者是rs.getString(“name”);

rs.getInt(3)或者是rs.getInt(“age”);

}

注意

只有select語句才會有結果集返回;

ResultSet對象一次只能看到一個數據行

使用next()方法走到下一數據行

獲得一行數據後,ResultSet對象可以使用getXxx()方法獲得欄位值,將位置索引或欄位名傳遞給get第六步

關閉創建的各個對象(後打開的先關)

rs.close();

sql.close();

con.close();Xxx方法()即可。

上面的給出了jsp內嵌java的最初模式,現在一般是三層結構了即MVC結構,就這個例子我來給你解釋下是怎麼做的,java對連接資料庫提供了統一的介面,各個資料庫廠商根據提供的介面規範開發自己的連接方法順序如下:1、用Class.forName()方法載入驅動:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance(); 黑體部分為資料庫廠商自己開發的驅動。2、定義好連接資料庫的url地址,連接串String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs”;黑體部分為固定寫法不用理會。回到你最初的問題,如何創建資料庫,這裡你可以去baidu下每個資料庫創建的方法,一般資料庫安裝的時候都有默認的資料庫名,和對應的系統管理員工號和密碼,DatabaseName=pubs這裡說明sql serv 2000中建立了一個名字叫pubs的資料庫jdbc:microsoft:sqlserver://localhost:1433固定寫法唯一不同的是1433埠號,可能你在安裝sql serv 2000的時候改變了該埠號為1500那麼這裡就應該為jdbc:microsoft:sqlserver://localhost:15003、定義好DatabaseName=pubs的登錄用戶名和密碼 String user=”sa”;用戶名

String password=””;密碼4、創建Connection對象,通過調用DriverManager.getConnection方法獲得。 Connection conn= DriverManager.getConnection(url,user,password);黑體部分就是你定義好的連接串,用戶名,密碼,不可改變順序。到這裡為止資料庫就連接上了,但是連接好了資料庫還要做點什麼,比如列印出來,接下看。5、通過獲得的Connection對象conn創建Statement 對象stmtStatement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);黑體部分是定義ResultSet的一些屬性的,具體含義可以參考JDK的api。6、定義好你準備取得數據的sql語句,比如下面 select * from test說明想從test表中取得所有的數據,關於sql語句可以去查找相關資料庫資料。 String sql=”select * from test”;定義好語句後,就用上一步創建好的Statement 對象stmt來執行這個sql語句,並返回一個ResultSet對象。

  ResultSet rs=stmt.executeQuery(sql);執行完這步後rs中已經取得了test表所有的數據,那麼接下來要展現在網頁上。7、rs.next()對你取得的記錄集做一個循環直到沒有值為止,rs.getString(1)代表你test表中的第一個欄位rs.getString(2)代表你test中的第二個欄位,如果還有更多欄位可以繼續rs.getString(3)..rs.getString(N) while(rs.next()) {%

您的第一個欄位內容為:%=rs.getString(1)%

您的第二個欄位內容為:%=rs.getString(2)%

%}%8、當所有數據展現完畢,調用close()方法將所有資源關閉。 rs.close();

stmt.close();

conn.close();回顧下大致過程:載入驅動 Class.forName();定義好相關的數據,調用DriverManager.getConnection(driver,user,password)獲得一個資料庫連接conn通過conn創建Statement對象stmt,conn.createStatement();通過stmt執行定義好的sql語句獲得數據集ResultSet rs=stmt.executeQuery(「select * from test」);通過rs.next()方法循環遍曆數據集的數據,通過rs.getString(1)獲得第一條數據的第一個欄位內容,這裡要注意的是getString是對應資料庫是字元類型,如果test表的第一個欄位不是字元類型則用rs.getInt(1)獲得。展現完畢後關閉所有資源conn stmt rs close方法。

%@ page contentType=”text/html;charset=gbk”%

%@ page import=”java.sql.*”%

html

body

%

Class.forName(“com.mysql.jdbc.Driver”);

String url =”jdbc:MySql://localhost/test?user=rootpassword=komoe”;

Connection conn= DriverManager.getConnection(url);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql=”select * from table_01″;

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%br /

%=rs.getString(1)%br /

%=rs.getString(2)%br /

%}%

%out.print(“br /”+”資料庫操作成功,恭喜你”);%

%rs.close();

stmt.close();

conn.close();

%

/body

/html

實際開發中以MVC設計模式為主,強制性地使應用程序的輸入、處理和輸出分開。

現在的JSP頁面中的代碼已經減少了很多,只是簡單地完成了輸出,實際上在開發中,JSP中最好只包含一下3中類型的代碼:

•接收屬性:接收從Servlet傳遞過來的屬性。

•判斷語句:判斷傳遞到JSP中的屬性是否存在。

•輸出內容:使用迭代或者VO進行輸出。

在JSP頁面中唯一允許導入的包只能是java.util包,值要能把握住這一點,即可開發出一個簡潔、清晰的JSP頁面。

訪問資料庫要用到jdbc技術。

首先載入驅動:Class.forName(“驅動包.類名稱”);

然後獲得連接:Connection conn = DriverManager.getConnection(“連接路徑,埠,資料庫名”,”資料庫用戶名”,”密碼”);

然後獲得PreparedStatement:PreparedStatement pstmt = conn.prepareStatement(“sql語句”);

之後就按照檢索和增刪改的區別分別執行不同的代碼。

1、jsp是java服務端動態網頁技術,主要應用於網頁構建,理論上講不應該在頁面中直接連資料庫。合理的做法是先構建一個java後端,然後在JAVA後端中通過jdbc連接sqlserver。

2、如果一定要在jsp頁面中連資料庫也是可以的。jsp中有專門的sql標籤可以連接資料庫進行操作,這是jstl的內容,需要導入相應的資料庫驅動包。

3、jsp的內容相對來說技術難度都不算特別高,學習起來還是比較容易的。

4、希望對你有幫助。祝你學有所得。

一般都要四步,

第一步 載入資料庫驅動類文件按

第二步 建立連接打開資料庫

第三步 執行SQL

第四步 就是接受結果集並關閉資料庫

例如: try {

Connection con;

Statement stmt;

Class.forName(“com.mysql.jdbc.Driver”);

DriverManager.registerDriver (new com.mysql.jdbc.Driver());

String dbUrl=

“jdbc:mysql://localhost:3306/database(添加你的資料庫名)?UseUnicode=truecharacterEnconding=gbk”;

String dbUser=”root”;//你資料庫用戶名

String dbPwd=”root”;//你的資料庫密碼

con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);

stmt=con.createStatement();

stmt.executeUpdate(“Sql語句”);//當然查詢語句用的函數executeQuery()

stmt.close();

con.close();

}catch (Exception e)

{

out.println(e.getMessage());

}

原創文章,作者:TYADT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127158.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TYADT的頭像TYADT
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Java Thread.start() 執行幾次的相關問題

    Java多線程編程作為Java開發中的重要內容,自然會有很多相關問題。在本篇文章中,我們將以Java Thread.start() 執行幾次為中心,為您介紹這方面的問題及其解決方案…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網路爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向位元組流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 如何解決vuejs應用在nginx非根目錄下部署時訪問404的問題

    當我們使用Vue.js開發應用時,我們會發現將應用部署在nginx的非根目錄下時,訪問該應用時會出現404錯誤。這是因為Vue在刷新頁面或者直接訪問非根目錄的路由時,會認為伺服器上…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29

發表回復

登錄後才能評論