تصف هذه المقالة تقنية ترحيل بيانات الإطار الإطار. شاركه للرجوع إليه ، على النحو التالي:
1. الأفكار الأساسية لآلية ترحيل البيانات:
(1) تحديد فترة التسجيل ، أي تحديد عدد السجلات المعروضة في كل صفحة ، والتي يمكن تحديدها وفقًا للوضع الفعلي.
(2) احصل على إجمالي عدد السجلات ، أي احصل على إجمالي عدد السجلات التي سيتم عرضها على الصفحة. والغرض من ذلك هو تحديد العدد الإجمالي للتوزيعات بناءً على هذا الرقم.
(3) تحديد العدد الإجمالي للصفحات بعد الترحيل. يمكنك استخدام الصيغة: "إجمالي عدد الصفحات = (إجمالي عدد السجلات - 1) / عدد السجلات المعروضة لكل صفحة + 1".
(4) عرض البيانات وفقًا للعدد الحالي للصفحات. إذا كان عدد الصفحات أقل من 1 ، فسيكون مساوياً لـ 1 ؛ إذا كان أكبر من الحد الأقصى لعدد الصفحات ، فسيكون مساوياً لأقصى عدد من الصفحات.
(5) عرض نتائج الاستعلام من خلال توزيع بيان الحلقة.
2. احصل على سجلات N السابقة:
بناء الجملة SQL:
حدد Top Nfrom Tablewhere ... order by ...
على سبيل المثال: احصل على السجلات الأربعة الأولى
حدد أعلى 4 * من السيارة
3. الحصول على بيانات الترحيل:
String SQL = "SELECT TOP"+PageSize+"* من السيارة حيث معرف Notin (حدد TOP"+(Page-1)* Pagesize+"معرف من Car Order by ID ASC) بواسطة ID ASC
المعلمات كما يلي:
Pagesize: عدد السجلات المعروضة لكل صفحة
الصفحة: عدد الصفحات الحالية
السيارة: اسم جدول البيانات
4.MYSQL ترقيم قاعدة البيانات
توفر قاعدة بيانات MySQL وظيفة حد ، والتي تتيح ترحيل البيانات السهل.
يتم استخدام وظيفة الحد للحد من عدد الصفوف التي يتم إرجاعها بواسطة عبارة Query Select.
القواعد:
حدد ... من Tablewhere ... طلب ... الحد [الإزاحة] ، الصفوف
المعلمات كما يلي:
الإزاحة: يحدد إزاحة الصف الأول الذي يتم إرجاعه. إزاحة خط البداية هو 0. اختياري.
الصفوف: يحدد عدد الصفوف التي تم إرجاعها.
5.MYSQL يحصل على بيانات متصفح
/*: // تحديد بيان بيان الاستعلام SQL PSTMT = NULL ؛ resultset rs = null ؛ // تحديد كائن مجموعة نتائج الاستعلام جرب {pstmt = conn.createstatement () ؛ rs = pstmt.executequery (strsql) ؛ // تنفيذ عبارة الاستعلام} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {try {if (pstmt! = null) {rs.close () ؛ pstmt.close () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ }} return rs ؛ // مجموعة نتائج الإرجاع}6. مثال على ترحيل البيانات
6.1 بنية المشروع:
6.2car.java قائمة البرامج:
حزمة com.cdd.util ؛/** * معلومات السيارة * Author Xu Qiao Hui * */Class Class Car {Private String ID ؛ اسم السلسلة الخاصة ؛؛ العلامة التجارية الخاصة بالسلسلة ؛ سلسلة خاصة Enginenum ؛ حالة السلسلة الخاصة ؛ تصريحات سلسلة خاصة. السيارة العامة (حجم int) {} Public Car () {} السيارة العامة (معرف السلسلة ، اسم السلسلة ، العلامة التجارية للسلسلة ، سلسلة enginenum ، حالة السلسلة ، تصريحات السلسلة) {super () ؛ معرف = معرف ؛ this.name = name ؛ this.brand = العلامة التجارية ؛ this.enginenum = Enginenum ؛ this.state = الدولة ؛ this.remarks = ملاحظات ؛ } السلسلة العامة getId () {return id ؛ } public void setId (string id) {id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getBrand () {return brand ؛ } public void setBrand (سلسلة العلامة التجارية) {this.brand = brand ؛ } السلسلة العامة getenginenum () {return Enginenum ؛ } public void setenginenum (string enginenum) {this.enginenum = enginenum ؛ } السلسلة العامة getState () {return state ؛ } public void setState (String State) {this.state = state ؛ } السلسلة العامة getRemarks () {return reports ؛ } public void setRemarks (تصريحات السلسلة) {this.remarks = ملاحظات ؛ }}6.3GetConn.java قائمة برنامج:
package com.cdd.util ؛ استيراد java.sql.*؛ الفئة العامة getConn {static {try {class.forname ("com.mysql.jdbc.driver") ؛ // تنفيذ برنامج تشغيل قاعدة بيانات التحميل في كتل ثابتة} catch (classnotfoundException e) {E.PrintStackTrace () ؛ }} الاتصال العام getConn () {connection connection = null ؛ url url = "jdbc: mysql: // localhost: 3306/oa" ؛ سلسلة المستخدم = "الجذر" ؛ كلمة مرور السلسلة = "1120" ؛ حاول {connection = drivermanager.getConnection (url ، اسم المستخدم ، كلمة المرور) ؛ System.out.println ("OK") ؛ } catch (sqlexception e) {// todo catch catch e.printstacktrace () ؛ } اتصال الإرجاع ؛ } public static void main (string [] args) {getConn getConn = new getConn () ؛ getConn.getConn () ؛ }}6.4paginationutil.java قائمة البرامج:
package com.cdd.util ؛ import java.util.*؛ import java.sql.*؛ pagination paginationutil {getConn getConn = new getConn () ؛ Connection conn = getConn.getConn () ؛ // Public List findgrade (int page ، int pagesize) {String strsql = "SELECT * from car order by id limit" + (page - 1) * pagesize + "،" + pagesize + "" ؛ // تحديد بيان بيان الاستعلام SQL PSTMT = NULL ؛ resultset rs = null ؛ // تحديد قائمة كائنات مجموعة نتائج الاستعلام lstList = new ArrayList () ؛ // تحديد كائن التجميع ، جرب {pstmt = conn.createstatement () ؛ rs = pstmt.executequery (strsql) ؛ // تنفيذ عبارة الاستعلام بينما (rs.next ()) {// loop من خلال نتائج الاستعلام Set Car = new Car () ؛ // إنشاء سيارة car.setid (rs.getString ("id")) ؛ car.setName (rs.getString ("name")) ؛ car.setbrand (rs.getString ("Brand")) ؛ car.setenginenum (Rs.GetString ("Enginenum")) ؛ car.setState (RS.GetString ("state")) ؛ Car.SetRemarks (Rs.GetString ("ملاحظات")) ؛ lstlist.add (سيارة) ؛ // أضف كائنًا إلى المجموعة}} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {try {if (pstmt! = null) {rs.close () ؛ pstmt.close () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ }} return lstlist ؛ // إرجاع كائن مجموعة استعلام}/ ** * * param صفحة أي صفحة * param pagesmize عدد السجلات المعروضة لكل صفحة * مجموعة نتائج العودة */ public resultset findorder (int page ، int pagesize) {string strsql = "select * from car order by id limit" + (1) * pagesize + " // تحديد بيان بيان الاستعلام SQL PSTMT = NULL ؛ resultset rs = null ؛ // تحديد كائن مجموعة نتائج الاستعلام جرب {pstmt = conn.createstatement () ؛ rs = pstmt.executequery (strsql) ؛ // تنفيذ عبارة الاستعلام} catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {try {if (pstmt! = null) {rs.close () ؛ pstmt.close () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ }} return rs ؛ // إرجاع مجموعة النتائج} public int allpage (int pagesize) {int allp = 0 ؛ حاول {statle pstmt = conn.createstatement () ؛ pstmt.execute ("حدد العد (*) من السيارة") ؛ resultset rs = pstmt.getResultSet () ؛ System.out.print ("00") ؛ rs.next () ؛ int all = rs.getInt (1) ؛ system.out.print (all) ؛ allp = (الكل - 1) / pagesize + 1 ؛ System.out.println (allp) ؛ } catch (sqlexception e) {E.PrintStackTrace () ؛ } إرجاع allp ؛ } public static void main (string [] args) {paginationUtil pageinationUtil = new paginationUtil () ؛ قائمة قائمة = pageinationutil.findgrade (2 ، 6) ؛ لـ (int i = 0 ؛ i <list.size () ؛ i ++) {car car = (car) list.get (i) ؛ System.out.println (car.getId () + "" + car.getName ()) ؛ }}}6.5index.jsp قائمة برنامج:
<٪@ page language = "java" import = "java.util.*، com.cdd.util.*؛" pageenCoding = "GBK" ٪> <٪ string path = request.getContextPath () ؛ String basePath = request.getScheme () + ": //" + request.getServerName () + ":" + request.getServerPort () + path + "/" ؛ ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <title> my jsp 'index.jsp' صفحة بدء التشغيل </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "exparies" content = "0" content = "keyword1 ، keyword2 ، keyword3"> <meta http-equiv = "description" content = "this is my page"> <!-<link rel = "stylesheet" type = "text/css" href = "styles. BorderColor = "#cc00cc"> <tr> رقم لوحة الترخيص </td> <td> اسم السيارة </td> <td> العلامة التجارية </td> <td> رقم المحرك </td> </tr> <٪ paginationutil paginationutil = new paginationutil () ؛ int pageno = 0 ؛ if (request.getParameter ("no") == null) {pageno = 1 ؛ } آخر {pageno = integer.parseint (request.getParameter ("no")) ؛ } list cc = paginationUtil.findgrade (pageno ، 3) ؛ iterator i = cc.iterator () ؛ بينما (i.hasnext ()) {car car = (car) i.next () ؛ out.print ("<tr> <td>" + car.getid () + "</td>" + "<td>" + car.getName () + "</td>" + "<td>" + car.getBrand () + "</td>" + "<td> } int all = paginationUtil.AllPage (3) ؛ ٪> </table> <centre> إجمالي <٪ = all ٪> ، الصفحة الحالية هي <٪ = pageno ٪> صفحة <٪ if (pageno> 1) {٪> <a href = "index.jsp؟ no = <٪ = pageno - 1 ٪>"> الصفحة السابقة </a> <٪} <٪ href = "index.jsp؟ no = <٪ = pageno + 1 ٪>"> الصفحة التالية </a> <٪} ٪> </center> </body> </html>6.6 عنوان الوصول:
http: // x-pc: 8080/paging/index.jsp
6.7 لقطة شاشة للنتيجة الجري:
7. ترقيم ترقيم السبات
7.1HQL ترقيم
تقوم HQL بشكل أساسي بتنفيذ ترحيل البيانات من خلال طريقة setFirStresult () وطريقة setMaxResults ().
(1) يتم استخدام طريقة setFirStresult (int index) لاسترداد موضع فهرس بدء البيانات ، ويبدأ موضع الفهرس من 0.
(2) يتم استخدام طريقة setMaxResults (مبلغ int) لحساب الحد الأقصى لعدد السجلات المحملة في كل مرة ، وبشكل افتراضي ، فهي من موضع فهرس البدء إلى الأخير.
على سبيل المثال: استرداد 5 سجلات تبدأ من الموضع 2
Query Q = Session.Createquery ("Form Car") ؛ Q.SetFirStresult (2) ؛ Q.SetMaxResults (5) ؛7.2QBC ترقيم
على سبيل المثال: استرداد 5 سجلات تبدأ من الموضع 2
المعايير C = Session.Createcriteria ("Form Car") ؛ C.SetFirStresult (2) ؛ C.SetMaxResults (5) ؛7.3 طريقة ترحيل البيانات:
/*** استخدم عبارة HQL لاستعلام الصفحة* Param HQL HQL عبارة تحتاج إلى استعلام* Param Offset INDEX First Record* pageparam pageize عدد السجلات التي سيتم عرضها لكل صفحة* @RETURN جميع سجلات الصفحة الحالية*/public list findByPage (Final String HQL ، Final Int -int pagesize) { GethibernateTemplate () .executefind (new hibernatecallback () {// طرق يجب تنفيذها في واجهة hibernateCallback الكائن العام doinhibernate (جلسة الجلسة) يلقي hibernateException ، sqlexception {// تنفيذ Quipernate query query query. . قائمة الإرجاع ؛}/*** استخدم عبارة HQL لاستعلام الصفحة* Param HQL HQL عبارة تحتاج إلى استعلام* @param قيمة إذا كان لدى HQL معلمة تحتاج إلى تمريرها ، فإن القيمة هي المعلمة من عبارة HQL التي يتم تمريرها في PARERAM SELPSES FindBypage (سلسلة HQL النهائية ، قيمة الكائن النهائي ، إزاحة int النهائية ، pagesize النهائي) {// تنفيذ الاستعلام من خلال قائمة الكائنات hibernatecallback = gethibernatepray () .EDEVIND SQLEXCEPTION {// تنفيذ قائمة استعلام Hibernate = SESSAL.CREATER (HQL). قائمة الإرجاع ؛}/*** استخدم عبارة HQL للاطلاع على استعلام الصفحات* Param HQL HQL عبارة تحتاج إلى الاستعداد* قيم param إذا كان لدى HQL معلمات متعددة يجب تمريرها ، فالقيم هي مجموعة المعلمة من السجلات في جميع السجلات* RRANTRANTER FindBypage (سلسلة HQL النهائية ، الكائن النهائي [] ، إزاحة int النهائية ، pagesize النهائي) {// تنفيذ الاستعلام من خلال قائمة الكائنات hibernatecallback = gethibernateMplate () .Executefind (new hibernatecallback () HibernateException ، sqlexception {// تنفيذ استعلام ترقيم السبات = session.createquery (HQL) ؛ . قائمة العودة ؛}آمل أن يكون الوصف في هذه المقالة مفيدًا لبرمجة Java للجميع استنادًا إلى إطار السبات.