本文目錄一覽:
- 1、jsp中查詢數據庫得到的結果集rs中有多行數據,怎麼取出或者打印其中某一行數據的某一列?
- 2、jsp中怎麼把結果集作為session傳值
- 3、jsp中如何把servlet中獲得的一個數據庫結果集傳到jsp頁面中,然後再jsp頁面中顯示結果集的內容?
- 4、如何在jsp頁面獲取數據庫某個值
- 5、在jsp頁面展示從數據庫查詢出來的數據?
- 6、在JSP中怎樣調用java中的結果集
jsp中查詢數據庫得到的結果集rs中有多行數據,怎麼取出或者打印其中某一行數據的某一列?
用while遍歷,從第一行開始,如果想到指定行,需要做判斷或直接執行代碼
while(rs.next()){
這裡寫你要獲取那列的類型,如果是String則
String
a=rs.getString(0);//0表示第1列,以此類推
}
jsp中怎麼把結果集作為session傳值
好像你的意思是一個一個的放在session里?這樣的話,不如把它們放到集合里,然後把集合放到session里。
List list=new ArrayList();
while(rs.next()){
PersonBean pb=new PersonBean();//一條記錄對應一個對象
pb.setXx();
….
list.add(pb);
}
return list;
該方法返回一個集合,你應該是在servlet或者action類里調用該方法,然後得到session對象然後標記這個list。request.getSession.setAttribute(“list”,list);
因為session生命周期比較長,可以通過List list=(List)request.getSession.getAttribute(“list”);在其他的控制層使用。
頁面要顯示list里的內容,用foreach標籤迭代
jsp中如何把servlet中獲得的一個數據庫結果集傳到jsp頁面中,然後再jsp頁面中顯示結果集的內容?
jsp頁面傳值個servlet可通過form提交,servlet可通過request.getRequestDispatcher(“跳轉的jsp頁面”)進行頁面跳轉,值通過request.setAttribute(“name”,value)進行傳遞。
你的代碼沒問題啊,你現在是說test.jsp如何獲得這些值么?
如何在jsp頁面獲取數據庫某個值
最簡單的JSP頁面中的數據庫操作方法:
%@ page
language=”java”
contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″
%
%@page import=”java.sql.*”%
center
H1 font color=”blue” size=”12″管理中心/font/H1
HR /
table width=”80%” border=”1″
tr
thID/th
th書名/th
th作者/th
th價格/th
th刪除/th
/tr
%
// 數據庫的名字
String dbName = “zap”;
// 登錄數據庫的用戶名
String username = “sa”;
// 登錄數據庫的密碼
String password = “123”;
// 數據庫的IP地址,本機可以用 localhost 或者 127.0.0.1
String host = “127.0.0.1”;
// 數據庫的端口,一般不會修改,默認為1433
int port = 1433;
String connectionUrl = “jdbc:sqlserver://” + host + “:” + port + “;databaseName=” + dbName + “;user=” + username
+ “;password=” + password;
//
//聲明需要使用的資源
// 數據庫連接,記得用完了一定要關閉
Connection con = null;
// Statement 記得用完了一定要關閉
Statement stmt = null;
// 結果集,記得用完了一定要關閉
ResultSet rs = null;
try {
// 註冊驅動
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
// 獲得一個數據庫連接
con = DriverManager.getConnection(connectionUrl);
String SQL = “SELECT * from note”;
// 創建查詢
stmt = con.createStatement();
// 執行查詢,拿到結果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%
tr
td
%=rs.getInt(1)%
/td
td
a href=”prepareupdate?ID=%=rs.getInt(“ID”)%” target=”_blank”%=rs.getString(2)%/a
/td
td
%=rs.getString(3)%
/td
td
%=rs.getString(4)%
/td
td
a href=”delete?ID=%=rs.getInt(“ID”)%” target=”_blank”刪除/a
/td
/tr
%
}
} catch (Exception e) {
// 捕獲並顯示異常
e.printStackTrace();
} finally {
// 關閉我們使用過的資源
if (rs != null)
try {
rs.close();
} catch (Exception e) {}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {}
if (con != null)
try {
con.close();
} catch (Exception e) {}
}
%
/table
a href=”insert.jsp”添加新紀錄/a
/center
在jsp頁面展示從數據庫查詢出來的數據?
在獲取完所有的list後只需要截取你所需要的一部分list就可以了,所以要知道你所需要的是從哪裡開始,到哪裡結束。
有很多種方法,如果只是JSP里的話可以再次遍歷獲取的所有list集合,然後把滿足條件的截取出來,開始的list下標應該是:(你要查詢的頁數-1)*頁面要顯示的數據條數,也就是你這裡的(page-1)*pageRows,結束的地方也就是page*pageRows-1了。//這樣應該可以寫出來了吧
建議把這個方法封裝到一個類裡面,一個方法就實現一種功能。當然這是比較麻煩的,現在流行框架,以後會學到的,在hibernate框架里用query語句很容易就實現了,現在時間多,
多看看hibernate框架吧,推薦你一本書,hibernate in action,有中文版的。這個是你們以後入門了hibernate後看的。
public List listOrderByItem(int pageRows,int page) { //page是要顯示的頁數,pageRows是你要顯示的行數
Session session = this.getSession();//獲取hibernate的session,hibernate自動生成的DAO里包含
String hql = “from TBL_storage as tbl_s order by item”;//hql語句
Query query = session.createQuery(hql);//hibernate的query,通過session創建
query.setFirstResult((page-1)*pageRows);//設置開始的下標
query.setMaxResults(pageRows);//設置每頁顯示的行數
return query.list();//得到所需要的結果集
在JSP中怎樣調用java中的結果集
你是用servlet嗎。
那把list放到request里。
然後請求轉發到你的JSP頁面上,就能訪問了。
在SERVLET里:
request.setAttribute(“data”, arrayList);
request.getRequestDispatcher(“showList.jsp”).forward(request, response);
頁面上(showList.jsp)
%
ListString data = (ArrayListString)request.getAttribute(“data”);//這一步要強轉
for(String str : data){
out.println(str);
}
%
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/206112.html