การปนเปื้อนควรเป็นงานที่เรามักจะทำเมื่อพัฒนาเว็บแอปพลิเคชัน เป็นสิ่งสำคัญมากที่จะสามารถใช้การปนเปื้อนของฐานข้อมูลและดูเลเยอร์ในวิธีที่ค่อนข้างง่าย
ในเลเยอร์ฐานข้อมูลให้ใช้ไฮเบอร์เนตเพื่อแยกฐานข้อมูลและห่อหุ้มข้อมูลที่สอบถามจากฐานข้อมูลไปยัง Javabeans; ในเลเยอร์มุมมองการเพจสามารถใช้งานได้ง่าย
สร้างหน้าเว็บ
แพ็คเกจ com.fishing.common.bean; นำเข้า java.util.list; @SuppressWarnings ("ไม่ได้ตรวจสอบ") Public Class PageBean {รายการส่วนตัว; // รายชื่อบันทึกที่จะส่งคืน INT allrow ส่วนตัว; // บันทึกทั้งหมด INT TotalPage ส่วนตัว; // หน้ารวม Private Int CurrentPage; // หน้าปัจจุบันหน้าส่วนตัว // จำนวนระเบียนต่อหน้าบูลีนส่วนตัว isfirstpage; // ไม่ว่าจะเป็นหน้าแรกบูลีนส่วนตัว iSlastpage; // ไม่ว่าจะเป็นหน้าสุดท้ายบูลีนส่วนตัว Hastpreviouspage; // มีหน้าก่อนหน้า Boolean ส่วนตัว HasnextPage; // มีหน้าถัดไปรายการสาธารณะ getList () {รายการส่งคืน; } โมฆะสาธารณะ setlist (รายการรายการ) {this.list = list; } public int getAllrow () {return allrow; } โมฆะสาธารณะ setAllrow (int allrow) {this.allrow = allrow; } public int getTotalPage () {return totalPage; } โมฆะสาธารณะ settotalPage (int totalPage) {this.totalPage = TotalPage; } public int getCurrentPage () {return currentPage; } โมฆะสาธารณะ setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getPagesize () {กลับ pageSize; } โมฆะสาธารณะ setPagesize (int pageize) {this.page.ize = pageSize; } / *** / / ***ข้อมูลการเริ่มต้นการเริ่มต้นใช้งาน* / โมฆะสาธารณะ init () {this.isfirstPage = isFirstPage (); this.islastpage = iSlastPage (); this.hasPreviousPage = iShasPreviousPage (); this.hasNextPage = ishasNextPage (); }/ ** *// ** * ต่อไปนี้เพื่อตัดสินข้อมูลของหน้าเพียงแค่วิธี getter (วิธีการ) * * @return */ บูลีนสาธารณะ isfirstPage () {return (currentPage == 1); // ถ้าหน้าปัจจุบันเป็นหน้าแรก // ถ้าหน้าปัจจุบันเป็นหน้าสุดท้าย} บูลีนสาธารณะ ishaspreviousPage () {return currentPage! = 1; // ตราบใดที่หน้าปัจจุบันไม่ใช่หน้าแรก} บูลีนสาธารณะ ishasnextPage () {return currentPage! = TotalPage; // ตราบใดที่หน้าปัจจุบันไม่ใช่หน้าสุดท้าย}/***//*** คำนวณจำนวนหน้าทั้งหมดวิธีการคงที่และถูกเรียกโดยตรงโดยภายนอกผ่านชื่อคลาส** @param pagesize* จำนวนบันทึกต่อหน้า* @param allrow* ทั้งหมด % pagesize == 0? allrow / pagesize: allrow / pagesize + 1; กลับมารวมหน้า; } / *** / / *** คำนวณบันทึกเริ่มต้นของหน้าปัจจุบัน** @param PageSize* จำนวนบันทึกต่อหน้า* @param CurrentPage* หน้าปัจจุบัน* @return หน้าปัจจุบันเริ่มบันทึกหมายเลขบันทึก* / public Static int countoffset (สุดท้าย int pagesize สุดท้าย ชดเชยกลับ; } /*** / /*** คำนวณหน้าปัจจุบัน ถ้าเป็น 0 หรือไม่มี "page =" ใน URL ที่ร้องขอจะใช้ 1 หน้า * * @param หน้า * พารามิเตอร์ที่ผ่าน (อาจว่างเปล่านั่นคือ 0 แล้ว 1 จะถูกส่งคืน) * @return หน้าปัจจุบัน */ public Static int countCurrentPage (หน้า int) กลับ curpage; - เพิ่มวิธีการในอินเทอร์เฟซนามธรรมของ DAO:
รายการสาธารณะ queryForPage (สตริงสุดท้าย HQL, ออฟเซ็ต int สุดท้าย, ความยาว int สุดท้าย); ใช้วิธีการในระดับการใช้งานของ DAO JIANSHEDWDAOIMPL รายการสาธารณะ queryForPage (สตริงสุดท้าย HQL, ออฟเซ็ต int สุดท้าย, ความยาว int สุดท้าย) {list list = getHibernatetemplate (). ExecuteFind query.setFirStresult (ออฟเซ็ต); รายการคืน; - เพิ่มวิธีการในอินเตอร์เฟสเลเยอร์ Abstraction Service JianshedwService:
Publebean PageBean QueryForPage (int pageize, int currentPage);
ใช้วิธีการในคลาสการใช้งานบริการ:
Public PageBean QueryForPage (int pageize, หน้า int) {สตริงสุดท้าย hql = "จาก jianshedwbean"; // คำสั่งค้นหา int allrow = this.basedao.getallrowcount (HQL); // บันทึกทั้งหมด int totalPage = pageBean.countTotalPage (หน้า, allrow); // หน้ารวมขั้นสุดท้าย int offset = pageBean.countOffset (หน้าหน้า); // หน้าปัจจุบันเริ่มบันทึกความยาว int สุดท้าย = pagesize; // จำนวนระเบียนต่อหน้าสุดท้าย int currentPage = pageBean.countCurrentPage (หน้า); รายการ <JianshedWbean> list = this.basedao.QueryForPage (HQL, ออฟเซ็ต, ความยาว); // บันทึกของ "หนึ่งหน้า" // บันทึกข้อมูลการเพจลงใน Bean PageBean Pagebean = new PageBean (); Pagebean.setPagesize (Pagesize); pagebean.setCurrentPage (CurrentPage); pagebean.setallrow (allrow); pagebean.settotalpage (TotalPage); pagebean.setList (รายการ); pagebean.init (); ส่งคืน Pagebean; - สร้างรูปแบบการแบ่งหน้าในการดำเนินการเลเยอร์มุมมอง
แพ็คเกจ com.fishing.action.lcq; นำเข้า com.fishing.common.bean.jianshedwbean; นำเข้า com.fishing.common.bean.pagebean; นำเข้า com.fishing.service.lcq.jianshedwservice; นำเข้า com.opensymphony.xwork2.actionsupport; @suppresswarnings ("อนุกรม") ชั้นเรียนสาธารณะ getInfojsdwlistaction ขยายการกระทำ {หน้า int ส่วนตัว; // หน้าส่วนตัวของหน้าเบียนอะไร; // ถั่วที่มีข้อมูลการจัดจำหน่ายส่วนตัว Jianshedwbean Jianshedwbean; // หน้าเว็บส่วนตัว; Private Jianshedwservice Jianshedwservice; public int getPage () {หน้าส่งคืน; } public void setPage (หน้า int) {this.page = page; } Public PageBean getPagebean () {return pageBean; } โมฆะสาธารณะ setPagebean (PageBean PageBean) {this.pagebean = pageBean; } สาธารณะ jianshedwbean getjianshedwbean () {return jianshedwbean; } โมฆะสาธารณะ setjianshedwbean (Jianshedwbean Jianshedwbean) {this.jianshedwbean = Jianshedwbean; } สาธารณะ jianshedwservice getjianshedwservice () {return jianshedwservice; } โมฆะสาธารณะ setjianshedwservice (Jianshedwservice JianshedwService) {this.jianshedwservice = Jianshedwservice; } @Override สตริงสาธารณะที่ดำเนินการ () พ่นข้อยกเว้น {// หน้าเบียนของการปนเปื้อนหน้าพารามิเตอร์ระบุจำนวนบันทึกที่แสดงต่อหน้าหน้าหน้าเป็นหน้าปัจจุบันนี้หน้าเว็บ = jianshedwservice.QueryForPage (10, หน้า); กลับมาประสบความสำเร็จ - เขียนหน้าใน JSP
<tr> <td> </td> <td> <s: ถ้า test = "%{pageBean.currentPage == 1}"> หน้าแรกหน้าก่อนหน้า </s: ถ้า> <s: else> <a href = "jiangguan/getjsdwinfos.action? href = "jiangguan/getjsdwinfos.action? page = <s: ค่าคุณสมบัติ ="%{pageBean.currentPage-1} "/>"/> หน้าก่อนหน้า </a> </s: else> </td> <td> href = "jiangguan/getjsdwinfos.action? page = <s: ค่าคุณสมบัติ ="%{pageBean.currentPage+1} "/>"> หน้าถัดไป </a> <a href = "jiangguan/getjsdwinfos.action? <s: อื่น> หน้า pagelast ถัดไป </s: อื่น> </td> <td> <div align = "center"> หน้า <s: ค่าคุณสมบัติ = "pageBean.currentPage"/>/<s: ค่าคุณสมบัติ = "pageBean.totalPage" </td> </tr> ข้างต้นเป็นเพียงการใช้งานรหัสและไม่ได้อธิบายไฟล์การกำหนดค่าและผู้อ่านจะกำหนดค่าตามสถานการณ์
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับคุณ นี่คือทั้งหมดที่คุณจะแนะนำเนื้อหาการปนเปื้อนของการใช้งาน SSH2 ของฐานข้อมูลและอินเทอร์เฟซ ฉันหวังว่าทุกคนจะติดตามเว็บไซต์ของเราต่อไป! หากคุณต้องการเรียนรู้ Java คุณสามารถติดตามเว็บไซต์นี้ต่อไปได้