<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 添加示例數據 假設我們每頁顯示2條,一共5條信息。使用navicat,向數據表中添加5條信息。 # 將當前頁傳入C層,并在V層中獲取 采用分頁字段page ## C層 ``` package teacher; ... public class Index { ... // 當前頁 private int page = 1; // 每頁大小 private int pageSize = 2; // 顯示接收到的page信息 public int getPage() { return page; } // 接收請求的page信息 public void setPage(int page) { this.page = page; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } ... } ``` 文件完整代碼如下: ``` package teacher; import java.util.List; import entity.Teacher; public class Index { // 教師列表 類型為List,每項均為Teacher。 private List<Teacher> teachers; // 當前頁 private int page = 1; // 每頁大小 private int pageSize = 2; // 顯示接收到的page信息 public int getPage() { return page; } // 接收請求的page信息 public void setPage(int page) { this.page = page; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } // V層在展示數據teachers的時候,將自動調用該方法 public List<Teacher> getTeachers() { return teachers; } // 該execute方法將被自動調用, 方法的返回類型必須為String public String execute() { // 獲取教師列表 teachers = Teacher.all(); return "success"; } } ``` ## V層 /jsp/teacher/index.jsp ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>教師管理</title> </head> <body> <h2> 當前頁碼: <s:property value="page" /> <br /> 每頁大小: <s:property value="pageSize" /> </h2> <table> <tr> <th>序號</th> <th>姓名</th> <th>用戶名</th> <th>性別</th> <th>郵箱</th> </tr> <!-- s為我們在文件頭定位的標簽前綴。iterator是struts用于循環輸出List的標簽 --> <!-- teachers:自動調用C層的getTeachers();var=teacher:在循環體中使用的變量名 --> <s:iterator value="teachers" var="teacher" status="status"> <tr> <td><s:property value="#status.count" /></td> <!-- property輸出變量 teacher為內部變量,前面加入# --> <td><s:property value="#teacher.name" /></td> <td><s:property value="#teacher.username" /></td> <td><s:property value="#teacher.sexAttr" /></td> <td><s:property value="#teacher.email" /></td> </tr> </s:iterator> </table> <h4> 每頁1條:<a href="?page=1&pageSize=1">1</a> <a href="?page=2&pageSize=1">2</a> <a href="?page=3&pageSize=1">3</a><br/> 每頁2條:<a href="?page=1&pageSize=2">1</a> <a href="?page=2&pageSize=2">2</a> <a href="?page=3&pageSize=2">3</a><br /> 每頁3條:<a href="?page=1&pageSize=3">1</a> <a href="?page=2&pageSize=3">2</a> <a href="?page=3&pageSize=3">3</a><br /> </h4> </body> </html> ``` ## 測試 d # 建立分頁方法 d ``` package entity; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Index; import db.MysqlJavaee; // 聲明主體 @Entity public class Teacher { ... /** * 分頁數據 * @param page 第幾頁 * @param pageSize 每頁大小 * @return */ static public List<Teacher> paginate(int page, int pageSize) { // 實例化列表 teachers List<Teacher> teachers = new ArrayList<Teacher>(); // 創建會話(這里的session也是會話的意思,我們以前接觸的http中的session,處理的是用戶與服務器的對話) Session session = MysqlJavaee.getCurrentSession(); // 開啟事務(使用緩沖池進行數據庫的連接) Transaction transaction = session.beginTransaction(); // 在這里,必須使用try catch finally語句。來確定會話正常關閉. // 否則,當操作數據庫產生錯誤時,你可能需要重啟mysql服務 try { // 查詢Teacher表,注意:是Teacher ,而不是 teacher Query query = session.createQuery("from Teacher"); // 計算并設置第一條記錄的位置 int index = (page - 1) * pageSize; query.setFirstResult(index); // 每頁大小 query.setMaxResults(pageSize); teachers = query.list(); // 提交事務 transaction.commit(); // 捕獲異常 } catch (HibernateException e) { // 如果事務執行異常,則回滾事務 if (null != transaction) { transaction.rollback(); } // 打印異常 e.printStackTrace(); } finally { // 如果session處于開啟狀態,則關閉session if (session.isOpen()) { // 關閉會話 session.close(); } } return teachers; } } ``` ## 單元測試 ``` package teacher; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import db.MysqlJavaee; import entity.Teacher; public class IndexTest { @Test public void paginate() { List<Teacher> teachers = Teacher.paginate(1, 2); for (Teacher teacher : teachers) { System.out.println(teacher.toString()); } } ``` 測試結果: ``` Teacher [id=1, name=張三, username=zhangsan, email=zhangsan@yunzhiclub.com, sex=true, password=123] Teacher [id=2, name=李四, username=lisi, email=lisi@yunzhiclub.com, sex=false, password=456] ``` > 自本節開始,我們在M層中,每建立一個新的方法,都會使用單元測試來進行驗證。這是一個好習慣,也是一個必須要保持住的習慣。 # 調用分頁方法 刪除原來使用的all方法,改為我們剛剛建立的paginate方法。 ``` // 該execute方法將被自動調用, 方法的返回類型必須為String public String execute() { // 獲取教師列表 teachers = Teacher.paginate(page, pageSize); return "success"; } ``` # 集成測試 我們再次刷新[http://localhost:8080/javaee/teacher/](http://localhost:8080/javaee/teacher/)進行測試。 > 官方文檔:
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看