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-hant/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

發表回復

登錄後才能評論