新聞中心
快速掌握J(rèn)avaWeb查詢,輕松顯示數(shù)據(jù)庫(kù)內(nèi)容

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出常州免費(fèi)做網(wǎng)站回饋大家。
隨著互聯(lián)網(wǎng)的快速發(fā)展,JavaWeb的應(yīng)用越來越廣泛。其中,數(shù)據(jù)庫(kù)查詢是JavaWeb開發(fā)中的重要部分之一。如何快速掌握J(rèn)avaWeb查詢,并通過網(wǎng)站輕松顯示數(shù)據(jù)庫(kù)內(nèi)容,成為JavaWeb初學(xué)者必須掌握的技能。
JavaWeb查詢可以分為靜態(tài)查詢和動(dòng)態(tài)查詢。靜態(tài)查詢即是在Java程序中預(yù)先寫好SQL語(yǔ)句,然后在程序執(zhí)行時(shí)直接執(zhí)行SQL語(yǔ)句并返回結(jié)果。動(dòng)態(tài)查詢即是在頁(yè)面上通過用戶輸入的條件,動(dòng)態(tài)生成SQL語(yǔ)句,并執(zhí)行返回結(jié)果。以下分別介紹這兩種查詢方式。
一、靜態(tài)查詢
靜態(tài)查詢主要是通過JDBC技術(shù)訪問數(shù)據(jù)庫(kù)。需要在程序中建立數(shù)據(jù)庫(kù)連接,JavaWeb程序往往采用如下方式連接數(shù)據(jù)庫(kù):
“`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ù)庫(kù)連接地址,“username”表示數(shù)據(jù)庫(kù)用戶名,“password”表示數(shù)據(jù)庫(kù)密碼。建立好連接之后,就可以利用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可以調(diào)用存儲(chǔ)過程查詢數(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);
// … 其他字段
}
“`
二、動(dòng)態(tài)查詢
動(dòng)態(tài)查詢適合于在頁(yè)面上根據(jù)用戶的選擇生成相應(yīng)的SQL語(yǔ)句。JavaWeb中,常使用的動(dòng)態(tài)查詢方式有兩種,即利用JavaServer Pages(P)和JavaServer Faces(F):
1. P
P是一種用于創(chuàng)建動(dòng)態(tài)Web頁(yè)面的技術(shù),P頁(yè)面中可以直接嵌入Java代碼,能夠生成相應(yīng)的HTML頁(yè)面。在P頁(yè)面中使用JDBC查詢數(shù)據(jù)庫(kù),示例代碼如下:
“`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的縮寫,是一個(gè)用于創(chuàng)建Web應(yīng)用程序的框架。F可以通過標(biāo)簽庫(kù)將頁(yè)面與Java代碼結(jié)合起來。在F頁(yè)面中使用JDBC查詢數(shù)據(jù)庫(kù),示例代碼如下:
“`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
}
“`
相關(guān)問題拓展閱讀:
- java web前端如何按條件查詢數(shù)據(jù)庫(kù)大量數(shù)據(jù)
- javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫(kù)查出來并返回前臺(tái)?
java web前端如何按條件查詢數(shù)據(jù)庫(kù)大量數(shù)據(jù)
1.參數(shù)傳到后臺(tái),通過hibernate的hql語(yǔ)句寫一個(gè)普通的模糊查詢就可以了,hql基本無(wú)法優(yōu)化,只能加索引。
2.用jdbc或者mybatis。
3.配置文件應(yīng)該是jdbc.properties吧?一般不需要,因?yàn)閖dbc.properties里一般只寫driver 、url、username和password,頂多還有或缺一衡槐些連接池相關(guān)衫攔辯的配置。
javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫(kù)查出來并返回前臺(tái)?
你用jdbc查出數(shù)陵亮據(jù)來之后,尺鬧寬把數(shù)據(jù)作為對(duì)象放在response對(duì)象里面。
然后在P里面就可彎并以用${對(duì)象名}來獲取數(shù)值了。
你是想做到P頁(yè)面不加入這種小腳本吧,那可以采用EL表達(dá)式,或者一些框架的輸出方式,通常用EL就可以了,因?yàn)镋L就是用來運(yùn)算和表灶運(yùn)達(dá)的。后臺(tái)獲取數(shù)據(jù)以后,這個(gè)數(shù)據(jù)可以是一個(gè)簡(jiǎn)單類型,也可以是一個(gè)對(duì)象,如果是同一個(gè)請(qǐng)求下的,也就是request對(duì)象沒有變,那么可以用這個(gè)存儲(chǔ),否則要用session存儲(chǔ),存儲(chǔ)數(shù)據(jù)的對(duì)象是P內(nèi)置的對(duì)象,有page,request,session,application等,每個(gè)對(duì)象都能存儲(chǔ)數(shù)據(jù),但是作用于不同,page針對(duì)當(dāng)前頁(yè)面,request針對(duì)一個(gè)請(qǐng)隱姿梁求,session針對(duì)一個(gè)會(huì)話,application針對(duì)整個(gè)應(yīng)用程序。 通常session就可以了。 比如后臺(tái)獲取一個(gè)String的name值,那么你可以session.setAttribute(“name”,name); 那么P直接可以EL這冊(cè)御樣寫:${sessionScope.name} 獲取這個(gè)值,這里的name是后臺(tái)封裝的鍵的名,不是后面變量name的名。
javaweb查詢顯示數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于javaweb查詢顯示數(shù)據(jù)庫(kù),快速掌握javaweb查詢,輕松顯示數(shù)據(jù)庫(kù)內(nèi)容,java web前端如何按條件查詢數(shù)據(jù)庫(kù)大量數(shù)據(jù),javaweb怎么將數(shù)據(jù)從數(shù)據(jù)庫(kù)查出來并返回前臺(tái)?的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
標(biāo)題名稱:快速掌握javaweb查詢,輕松顯示數(shù)據(jù)庫(kù)內(nèi)容(javaweb查詢顯示數(shù)據(jù)庫(kù))
網(wǎng)址分享:http://m.5511xx.com/article/dpiojdo.html


咨詢
建站咨詢
