新聞中心
快速掌握JavaWeb查詢,輕松顯示數(shù)據(jù)庫內容

公司主營業(yè)務:成都做網(wǎng)站、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出常州免費做網(wǎng)站回饋大家。
隨著互聯(lián)網(wǎng)的快速發(fā)展,JavaWeb的應用越來越廣泛。其中,數(shù)據(jù)庫查詢是JavaWeb開發(fā)中的重要部分之一。如何快速掌握JavaWeb查詢,并通過網(wǎng)站輕松顯示數(shù)據(jù)庫內容,成為JavaWeb初學者必須掌握的技能。
JavaWeb查詢可以分為靜態(tài)查詢和動態(tài)查詢。靜態(tài)查詢即是在Java程序中預先寫好SQL語句,然后在程序執(zhí)行時直接執(zhí)行SQL語句并返回結果。動態(tài)查詢即是在頁面上通過用戶輸入的條件,動態(tài)生成SQL語句,并執(zhí)行返回結果。以下分別介紹這兩種查詢方式。
一、靜態(tài)查詢
靜態(tài)查詢主要是通過JDBC技術訪問數(shù)據(jù)庫。需要在程序中建立數(shù)據(jù)庫連接,JavaWeb程序往往采用如下方式連接數(shù)據(jù)庫:
“`java
Class.forName(“com.mysql.jdbc.Driver”);
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);
“`
其中,“jdbc:mysql://localhost:3306/dbname”表示數(shù)據(jù)庫連接地址,“username”表示數(shù)據(jù)庫用戶名,“password”表示數(shù)據(jù)庫密碼。建立好連接之后,就可以利用Java提供的JDBC API執(zhí)行SQL查詢了。常見的JDBC查詢方式有如下幾種:
1. Statement
Statement可以執(zhí)行靜態(tài)SQL查詢。示例代碼如下:
“`java
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(“select * from table”);
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
// … 其他字段
}
“`
2. PreparedStatement
PreparedStatement可以優(yōu)化SQL查詢,提升查詢性能。示例代碼如下:
“`java
String sql = “select * from table where id = ?”;
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setInt(1, 1);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
// … 其他字段
}
“`
3. CallableStatement
CallableStatement可以調用存儲過程查詢數(shù)據(jù)。示例代碼如下:
“`java
String sql = “{call usp_get_data(?)}”;
CallableStatement cstmt = connection.prepareCall(sql);
cstmt.setInt(1, 1);
ResultSet rs = cstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
// … 其他字段
}
“`
二、動態(tài)查詢
動態(tài)查詢適合于在頁面上根據(jù)用戶的選擇生成相應的SQL語句。JavaWeb中,常使用的動態(tài)查詢方式有兩種,即利用JavaServer Pages(P)和JavaServer Faces(F):
1. P
P是一種用于創(chuàng)建動態(tài)Web頁面的技術,P頁面中可以直接嵌入Java代碼,能夠生成相應的HTML頁面。在P頁面中使用JDBC查詢數(shù)據(jù)庫,示例代碼如下:
“`jsp
<%
Class.forName(“com.mysql.jdbc.Driver”);
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);
PreparedStatement pstmt = null;
ResultSet rs = null;
String id = request.getParameter(“id”);
String name = request.getParameter(“name”);
String sql = “select * from table where 1=1”;
if (id != null && !id.trim().isEmpty()) {
sql += ” and id = ?”;
}
if (name != null && !name.trim().isEmpty()) {
sql += ” and name = ?”;
}
pstmt = connection.prepareStatement(sql);
int index = 1;
if (id != null && !id.trim().isEmpty()) {
pstmt.setInt(index++, Integer.parseInt(id));
}
if (name != null && !name.trim().isEmpty()) {
pstmt.setString(index++, name);
}
rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
// … 其他字段
}
%>
“`
2. F
F是JavaServer Faces的縮寫,是一個用于創(chuàng)建Web應用程序的框架。F可以通過標簽庫將頁面與Java代碼結合起來。在F頁面中使用JDBC查詢數(shù)據(jù)庫,示例代碼如下:
“`xhtml
ID
#{item.id}
名稱
#{item.name}
“`
“`java
@Named
@RequestScoped
public class Bean {
private String id;
private String name;
private List list;
public void doQuery() {
Class.forName(“com.mysql.jdbc.Driver”);
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = “select * from table where 1=1”;
if (id != null && !id.trim().isEmpty()) {
sql += ” and id = ?”;
}
if (name != null && !name.trim().isEmpty()) {
sql += ” and name = ?”;
}
pstmt = connection.prepareStatement(sql);
int index = 1;
if (id != null && !id.trim().isEmpty()) {
pstmt.setInt(index++, Integer.parseInt(id));
}
if (name != null && !name.trim().isEmpty()) {
pstmt.setString(index++, name);
}
rs = pstmt.executeQuery();
List list = new ArrayList();
while (rs.next()) {
Data data = new Data();
data.setId(rs.getString(1));
data.setName(rs.getString(2));
// … 其他字段
list.add(data);
}
this.list = list;
}
// … getter and setter
}
“`
相關問題拓展閱讀:
- java web前端如何按條件查詢數(shù)據(jù)庫大量數(shù)據(jù)
- javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫查出來并返回前臺?
java web前端如何按條件查詢數(shù)據(jù)庫大量數(shù)據(jù)
1.參數(shù)傳到后臺,通過hibernate的hql語句寫一個普通的模糊查詢就可以了,hql基本無法優(yōu)化,只能加索引。
2.用jdbc或者mybatis。
3.配置文件應該是jdbc.properties吧?一般不需要,因為jdbc.properties里一般只寫driver 、url、username和password,頂多還有或缺一衡槐些連接池相關衫攔辯的配置。
javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫查出來并返回前臺?
你用jdbc查出數(shù)陵亮據(jù)來之后,尺鬧寬把數(shù)據(jù)作為對象放在response對象里面。
然后在P里面就可彎并以用${對象名}來獲取數(shù)值了。
你是想做到P頁面不加入這種小腳本吧,那可以采用EL表達式,或者一些框架的輸出方式,通常用EL就可以了,因為EL就是用來運算和表灶運達的。后臺獲取數(shù)據(jù)以后,這個數(shù)據(jù)可以是一個簡單類型,也可以是一個對象,如果是同一個請求下的,也就是request對象沒有變,那么可以用這個存儲,否則要用session存儲,存儲數(shù)據(jù)的對象是P內置的對象,有page,request,session,application等,每個對象都能存儲數(shù)據(jù),但是作用于不同,page針對當前頁面,request針對一個請隱姿梁求,session針對一個會話,application針對整個應用程序。 通常session就可以了。 比如后臺獲取一個String的name值,那么你可以session.setAttribute(“name”,name); 那么P直接可以EL這冊御樣寫:${sessionScope.name} 獲取這個值,這里的name是后臺封裝的鍵的名,不是后面變量name的名。
javaweb查詢顯示數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于javaweb查詢顯示數(shù)據(jù)庫,快速掌握javaweb查詢,輕松顯示數(shù)據(jù)庫內容,java web前端如何按條件查詢數(shù)據(jù)庫大量數(shù)據(jù),javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫查出來并返回前臺?的信息別忘了在本站進行查找喔。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
新聞標題:快速掌握javaweb查詢,輕松顯示數(shù)據(jù)庫內容(javaweb查詢顯示數(shù)據(jù)庫)
文章URL:http://www.dlmjj.cn/article/dpiojdo.html


咨詢
建站咨詢
