В этой статье описывается технология подщепления данных Hibernate Framework. Поделитесь этим для вашей ссылки, следующим образом:
1. Основные идеи механизма подключения данных:
(1) Определите промежуток записи, то есть определить количество записей, отображаемых на каждой странице, которые могут быть определены в соответствии с фактической ситуацией.
(2) Получите общее количество записей, то есть получите общее количество записей, которые будут отображаться на странице. Цель состоит в том, чтобы определить общее количество распределений на основе этого числа.
(3) Определите общее количество страниц после пейджинга. Вы можете использовать формулу: «Общее количество страниц = (общее количество записей - 1) / количество записей, отображаемых на страницу + 1».
(4) отображать данные в соответствии с текущим количеством страниц. Если количество страниц меньше 1, оно сделано равным 1; Если он больше, чем максимальное количество страниц, это сделано равным максимальному количеству страниц.
(5) Отображение результатов запроса через и пока распределение операторов цикла.
2. Получите предыдущие записи N:
Синтаксис SQL:
Выберите Top nfrom Tablewhere ... заказать по ...
Например: получите первые 4 записи
Выберите Top 4 * из машины
3. Получите данные под пейджинг:
String sql = "select top"+pagesize+"* из автомобиля, где id notin (select top"+(page-1)* pagesize+"Идентификатор по заказу автомобиля по id asc) по идентификатору ASC
Параметры следующие:
PageSize: количество записей, отображаемых на странице
Страница: Current Page Count
Автомобиль: имя таблицы данных
4. Mysql База данных
База данных MySQL обеспечивает ограниченную функцию, которая позволяет простую подкидку данных.
Ограниченная функция используется для ограничения количества строк, возвращаемых оператором Select Query.
Грамматика:
Выберите ... из таблицы везде ... Заказ по ... ограничение [смещение], ряды
Параметры следующие:
Смещение: указывает смещение первой строки, которая будет возвращена. Смещение начальной линии равно 0. является необязательным.
Ряды: указывает количество возвращаемых рядов.
5.mysql получает данные о странице.
/**** @param page На какую страницу* @param pageize Количество записей, отображаемых на странице* @return return relult*/public resultset findorder (int page, int pagesize) {string strsql = "select* from car order by id limit" + (page - 1)* pagesize + "," + pagesize + ""; // Определите оператор оператора запроса SQL PSTMT = null; Результат RS = NULL; // Определите запрос набор результатов объекта try {pstmt = conn.createStatement (); rs = pstmt.executequery (strsql); // Выполнить оператор запроса} catch (Exception e) {e.printstackTrace (); } наконец {try {if (pstmt! = null) {rs.close (); pstmt.close (); }} catch (Exception e) {e.printstackTrace (); }} return rs; // возвращать набор результатов}6. Пример подключения данных
6.1 ПИТАНИЕ СТРАХОДА ПРОЕКТА:
6.2car.java Список программ:
пакет com.cdd.util;/** * Информация о транспортном средстве * @author Xu Qiao Hui * */Public Class Car {Private String Id; частная строка имени ;; частная струнная бренд; частная строка Enginenum; частное строковое состояние; Частные строки замечания; public Car (int size) {} public car () {} public Car (идентификатор строки, название строки, бренд String, String EngineNum, String State, String Remarks) {super (); Id = id; this.name = name; this.brand = бренд; this.enginenum = enginenum; this.state = состояние; this.remarks = замечания; } public String getId () {return id; } public void setId (String Id) {id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public String getBrand () {return Brand; } public void setBrand (String Brand) {this.brand = brand; } public String getEnginEnum () {return inginEnum; } public void setenginEnum (String enginenum) {this.enginenum = inginenum; } public String getState () {return State; } public void setState (String state) {this.state = state; } public String getRemarks () {return Remarks; } public void setRemarks (String Замечания) {this.Remarks = remarks; }}6.3getConn.java Список программ:
пакет com.cdd.util; import java.sql.*; public class getConn {static {try {class.forname ("com.mysql.jdbc.driver"); // реализовать драйвер загрузки базы данных в статических блоках} catch (classnotfoundexception e) {e.printstacktrace (); }} public Connection getConn () {connection connection = null; String url = "jdbc: mysql: // localhost: 3306/oa"; String username = "root"; String password = "1120"; try {connection = drivermanager.getConnection (URL, имя пользователя, пароль); System.out.println ("OK"); } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return Connection; } public static void main (string [] args) {getConn getConn = new getConn (); getConn.getConn (); }}6.4paginationutil.java Список программ:
пакет com.cdd.util; import java.util.*; import java.sql.*; public class 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; Результат RS = NULL; // Определите счет набора объектов запроса LSTLIST = new ArrayList (); // Определить объект сбора try {pstmt = conn.createStatement (); rs = pstmt.executequery (strsql); // Выполните оператор запроса while (rs.next ()) {// цикл через результат запроса, установленная Car Car = new Car (); // Создать Car Car.setid (rs.getString ("id")); car.setname (rs.getstring ("name")); car.setbrand (rs.getString («бренд»)); car.setenginenum (rs.getstring ("enginenum")); Car.SetState (Rs.GetString ("State")); car.setremarks (rs.getString ("Замечания")); lstlist.add (автомобиль); // Добавить объект в коллекцию}} catch (Exception e) {e.printstackTrace (); } наконец {try {if (pstmt! = null) {rs.close (); pstmt.close (); }} catch (Exception e) {e.printstackTrace (); }} return lstlist; // Возврат объект коллекции запросов}/ ** * * * @param страница, какая страница. // Определите оператор оператора запроса SQL PSTMT = null; Результат RS = NULL; // Определите запрос набор результатов объекта try {pstmt = conn.createStatement (); rs = pstmt.executequery (strsql); // Выполнить оператор запроса} catch (Exception e) {e.printstackTrace (); } наконец {try {if (pstmt! = null) {rs.close (); pstmt.close (); }} catch (Exception e) {e.printstackTrace (); }} return rs; // вернуть набор результатов} public int allPage (int pageize) {int allp = 0; try {ratement pstmt = conn.createStatement (); pstmt.execute («Выберите счет (*) из машины»); Результаты RS = PSTMT.GetResultSet (); System.out.print ("00"); rs.next (); int All = rs.getint (1); System.out.print (все); allp = (All - 1) / pagesize + 1; System.out.println (allp); } catch (sqlexception e) {e.printstacktrace (); } return allp; } public static void main (string [] args) {paginationUtil pageninationutil = new PaginationUtil (); Список списка = PageNitianutil.FindGrade (2, 6); для (int i = 0; i <list.size (); i ++) {car car = (car) list.get (i); System.out.println (car.getId () + "" + car.getName ()); }}}6.5 index.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"> <html> <head> <Base href = <%= <%= <%= <%href> <title> my jsp 'index.jsp' Начальная страница </title> <meta http-equiv = "pragma" content = "no-cache"> <meta http-equiv = "cache-control" = "без cache"> <meta http-equiv = "истекает" content = "0"> <meta http-equiv = "key guids =" equiv = "extress" Content = "Keyword1, Keyword2, Keyword3"> <Meta Http-equiv = "description" content = "Это моя страница"> <!-<link rel = "stylesseship" type = "text/css" href = "styles.css">-> </head> <-Center> <H5> Информация о транспортном плате. bordercolor = "#cc00cc"> <tr> <td> Номер номерного знака </td> <td> Имя транспортного средства </td> <td> brand </td> <td> Номер двигателя </td> </tr> <% paginationutil paginationutil = new PaginationUtil (); int pageno = 0; if (request.getParameter ("no") == null) {pageno = 1; } else {pageno = integer.parseint (request.getParameter ("no")); } Список cc = paginationutil.findgrade (pageno, 3); Итератор I = cc.iterator (); while (i.hasnext ()) {car car = (car) i.next (); out.print ("<tr> <td>" + car.getId () + "</td>" + "<td>" + car.getName () + "</td>" + "<td>" + car.getbrand () + "</td>" + "<td>" + car.getenginenum () + "</td>") ")") } int all = paginationutil.allpage (3); %> </table> <Center> Total <%= All%> страницы, текущая страница является <%= pageno%> page <%if (pageno> 1) {%> <a href = "index.jsp? Нет = <%= pageno - 1%>"> Предыдущая страница </a> <%}%> <%if (pageno <All) href = "index.jsp? Нет = <%= pageno + 1%>"> Следующая страница </a> <%}%> </center> </body> </html>6.6 Адрес доступа:
http: // x-pc: 8080/paging/index.jsp
6.7 Скриншот результата работы:
7. Священная страница
7.1HQL Pagination
HQL в основном реализует подключение данных через метод SetFirStresult () и метод setMaxResults ().
(1) Метод SetFirStresult (Int Index) используется для извлечения позиции индекса начала данных, а позиция индекса начинается с 0.
(2) Метод SetMaxResults (Int Sum) используется для расчета максимального количества записей, загруженных в каждый раз, и по умолчанию он взят из положения индекса Set START до последнего.
Например: получить 5 записей, начиная с индекса позиции 2
Query q = session.createquery ("form Car"); q.setfirstresult (2); q.setMaxResults (5);7.2QBC Парень
Например: получить 5 записей, начиная с индекса позиции 2
Критерии c = session.createcritia ("form Car"); c.setfirstresult (2); c.setmaxresults (5);7.3 Метод подключения данных:
/*** Используйте оператор HQL для страницы запроса* @param hql hql оператор, который должен быть запросил* @param offset first index* @param pageize Количество записей, которые будут отображаться на странице* @return Все записи текущей страницы*/public list findbypage (final String hql, final offtest, final int pageize) {//execute Query Query через aby Query Query через hibersece Quemece jeftaTec =///execure gethibernateTemplate () .executefind (new hibernatecallback () {// методы, которые должны быть реализованы в интерфейсе hibernatecallback public object doinhibernate (сеанс сеанса). .SetMaxResults (PageSize) .list (); вернуть список;}/*** Используйте оператор HQL для страницы запроса* @param hql hql оператора HQL, который необходимо запросить* @param FindByPage (окончательная строка HQL, конечное значение объекта, окончательное смещение int, окончательный список int pagesize) {// выполнять запрос через список объектов HibernateCallback = gethibernateTemplate (). SQLEXCEPTION {// Выполнение Списка запросов с гибернатом Result = Session.Createquery (HQL) // Параметры паузы для hql athiple.setParameter (0, значение) .setfirstresult (Offset) .setMaxResults (Paterize) .list (); возвратный список;}/*** Используйте оператор HQL для запроса на страницу* @param hql hql оператора HQL, который необходимо запрашивать* @param FindBypage (конечная строка HQL, Final Object [] Значения, окончательное смещение int, final int pagesize) {// выполнять запрос через список объектов hibernateCallback = gethibernateTemplate () .executefind (new HibernateCallback () {// Методы, которые должны быть реализованы для реализации hibernatecallback publicancemancemancemente () {// методы, которые необходимо реализовать для реализации hibernatecallbackbackback () {// sesesceprection sessionerneemancemancemancemancemancemante (). SQLEXCEPTION {// Выполнение запроса на страницу склонной к себе Query Query = session.createquery (hql); .list (); возвратный список;}Я надеюсь, что описание в этой статье будет полезно для каждого Java -программирования на основе пластинга Hibernate.