Vor kurzem muss das Unternehmen eine Alarmseitenfunktion ausführen, die Pagination erfordert. Nachdem Sie viele Informationen überprüft haben, wurde festgestellt, dass PageHelper besser geeignet ist.
Daher schrieb ich ein Tutorial über die Verwendung von PageHelper, die von vorne anfing, und zeichnete auch auf, mit was ich für einen Tag beschäftigt war.
1. Erstens müssen Sie die Abhängigkeit von PageHelper im Projekt hinzufügen. Hier habe ich es mit Maven hinzugefügt.
<Depopenty> <gruppe> com.github.pageHelper </Groupid> <artifactId> PageHelper </artifactId> <version> 4.1.6 </Version> </abhängig>
2. Fügen Sie die Konfiguration von PageHelper in MyBatis -Konfigurationsdatei hinzu
<configuration> <plugins> <!-com.github.PageHelper ist der Paketame, bei dem sich die PageHelper-Klasse befindet-> <Plugin interceptor = "com.github.pagehelper.Pagehelper"> <! Die Pagenum-Seitenzahl-> <!-Der Effekt ist der gleiche wie das Pagenum in Startpage-> <Eigenschaft name = "OffsetaPaGenum" value = "true"/> <! pageSize=0 or RowBounds.limit = 0, all results will be queryed --> <!-- (Equivalent to the fact that the page query is not executed, but the result is still Page type) --> <property name="pageSizeZero" value="true"/> <!-- Version 3.3.0 is available - paging parameters are rationalized, false is disabled by default --> <!-- When rationalization is enabled, if Pagenum <1 wird die erste Seite abfragen, wenn Pagenum> Seiten die letzte Seite abfragt-> <!-Wenn die Rationalisierung deaktiviert ist, gibt es das Pagenum <1 oder pagenum> Seiten zurück, die leere Daten zurückgeben-> <Eigenschaftsname = "vernünftige" value = "True"/> <! Parameter Mapping, um Werte von MAP oder ServletRequest zu erhalten-> <!-Sie können Pagenum konfigurieren, pageSize, zählen, pageSizezero, vernünftig, orderby und konfigurieren Sie den Standardwert für die Zuordnung nicht-> <! passing paging parameters through Mapper interface parameters --> <property name="supportMethodsArguments" value="true"/> <!-- always return PageInfo type, check check whether the return type is PageInfo, and none returns Page --> <property name="returnPageInfo" value="check"/> </plugin> </plugins> </configuration>
3. Fügen Sie eine Seitenbekursklasse hinzu, um die ausgelasteten Informationen zu speichern
public class Pagebean <t> serialisierbar {private statische endgültige lange Serialversionuid = 1L; private lange Gesamtzahl; // Gesamtzahl der Datensätze private Liste <T> Liste; // Ergebnis set private int pagenum; // Wie viele Seiten private int pagesize; // Anzahl der Datensätze pro Seite private int Seiten; // Gesamtzahl der Seiten private int Größe; // num der aktuellen Seite <= pageSize public pageBohnen (Liste <T> Liste) {if (listinstanceof page) {Seite <T> page = (Seite <T>) Liste; this.pagenum = page.getPagenum (); this.pageSize = page.getPageSize (); this.total = page.gettotal (); this.pages = page.getPages (); this.list = Seite; this.size = page.size (); }} public Long gettotal () {return Total; } public void settotal (langer Gesamt) {this.total = Total; } publiclist <T> getList () {return list; } public void setList (Liste <T> Liste) {this.list = list; } public int getSize () {Rückgabegröße; } public void setSize (int size) {this.size = Größe; } public int getPagenum () {return pagenum; } public void setpagenum (int pagenum) {this.pagenum = pagenum; } public int getPageSize () {return pageSize; } public void setPageSize (int pageSize) {this.pageSize = pageSize; } public int getsPages () {Rückgabeseiten; } public void setPages (int pages) {this.pages = Seiten; }}Das Folgende ist der Geschäftslogikcode
4. Starten Sie zunächst in der Datei mapper.xml, betreiben Sie die Datenbank SQL und finden Sie die Daten, die wir benötigen
<select id="selectallList" parameterType="com.alarm.bean.AlarmParamModel" resultMap="AlarmMap"> select message_id, seqnum, message_type, process_status, distribution_status, processor, occur_time, close_time, system_id, group_id, warning_level, message_content from td_alarm_info </select>
5. Mapper -Schnittstellenmethode
Öffentliche Liste <ArmaParammodel> selektallist (AlarmParammodel -Modell);
6. Service -Schnittstellenmethode
DataGrid SelectAllList (AlarmParammodel -Modell, int pagenum, int pageSize);
7. Service -Implementierungsklasse
Es ist wichtig zu beachten, dass es die Hauptlogik der Pagination ist. Pagenum repräsentiert die Seitenzahl, pageSize repräsentiert die Anzahl der angezeigten Seiten, Startpag -Methode ist die Anfangsseite. Die OrderBy -Methode besteht darin
public datagrid selectAllList (AlarmParammodel -Modell, int pagenum, int pageSize) {pageHelper.startPage (pagenum, pageSize); PageHelper.OrDBY ("ECAME_TIME DESCE"); List <ArmaParammodel> list = this.AlarmmgrMapper.SelectAllList (Modell); PageInfo <ArmaParammodel> pageInfo = new PageInfo <ArmaParammodel> (Liste); DataGrid datagrid = new DataGrid (pageInfo.gettotal (), pageInfo.getList ()); DataGrid zurückgeben; }8. Ich habe festgestellt, dass ich hier eine DataGrid -Klasse verwendet habe. Dies ist eine Klasse, mit der Daten an die Rezeption geleitet werden, einschließlich Total (Total) und Zeilen (Daten).
öffentliche Klasse Datagrid {private long Total; private list rows = new ArrayList <> (); public DataGrid () {Super (); } public DataGrid (lange Gesamtzahlen, Liste) {Super (); this.total = total; this.rows = Zeilen; } public long gettotal () {return insgesamt; } public void settotal (langer Gesamt) {this.total = Total; } publiclist getRows () {return Zeilen; } public void setRows (List -Zeilen) {this.rows = Zeilen; }}9. Schreiben Sie die Controller -Ebene und rufen Sie die Methode an, die ich zuvor geschrieben habe
Es ist hier zu beachten, dass Offset und Limit die Seitenzahlen von der Rezeption und die Anzahl der angezeigten Seiten pro Seite sind. Anders als der Offset und die Grenze von Bootstrappable repräsentiert der Offset den Offset, dh wenn 10 Datenstücke pro Seite angezeigt werden, ist der Offset, der durch die zweite Seite in Bootstrap dargestellt wird, 10 und die erste Seite und die dritte Seite sind 0 bzw. 20. Und mein Offset hier bezieht sich auf ein Pagenum.
@RequestMapping (value = "/alarmInfo/list", method = {requestMethod.get, requestMethod.post}) @ResponseBody public datagrid alarmInfo (alarmparammodelmodell, @requestparam (value = "offset", DefaultValue = "0", fordert = false) intEger pagenum, pagenum, pagenum, pagenum, pagenum,, pagenum,, pagenum,, pagenum,, page,, @RequestParam (value = "limit", defaultValue = "10", fordert = false) Integer pageSize) {datagrid datagrid = this.AlarmmgrService.SelectAllList (Modell, Pagenum, PageSize); DataGrid zurückgeben; }10. Jetzt kann die Anfrage an der Rezeption die Backend -Daten abrufen und sie pagieren. Ich werde die Konfiguration meines Bootstrap -Tisches an der Rezeption veröffentlichen.
$ ('#TB_DEPARTMENTS'). Bootstrappable ({url: 'http://10.1.234.134:8088/api/Alarminfo/List', // Anfrage URL (*) -Methode: 'Get', // Anfragenmethode (*) Striped: DEFAGE: DEFAGE: Diese Eigenschaft muss festgelegt werden (*) Pagination: TRUE, ob Paging (*) nur infOpagination angezeigt werden soll: TRUE, // SETTE TRUE, um nur die Gesamtzahl der Daten anzuzeigen, nicht die Paginationstaste. Sidepagination: "Server", // Paginierungsmethode: Client -Client -Pagination, Server -Server -Pagination (*) Pagenumber: 1, // Initialisieren Sie die erste Seite, Standardpagent: 10, // Anzahl von Datensatzzeilen pro Seite (*) Pagelist: [10, 25, 100, 100], // Nummer der Reihen, die die Tabelle pro Seite sucht, und die Tabelle, die die Tabelle pro Seite sucht, und die Tabelle, die die Tabelle pro Seite sucht, und die Tabelle, die die Tisch sucht, this -seite pro Seite, um zu suchen. Geben Sie den Server nicht ein, daher bin ich persönlich das Gefühl, dass es für striktearch: true, showcolumns: false, // Werden alle Spalten angezeigt werden. Das Höhenattribut wird nicht festgelegt, die Tabelle spürt automatisch die Höhe der Tabelle gemäß der Anzahl der Datensätze, eindeutig: "ID", // Die eindeutige Identifizierung jeder Zeile ist im Allgemeinen die Primärschlüsselspalte ShowToggle: False, // Führen Sie die Schaltfläche "Umschalten" für detaillierte Ansicht und Listenansicht Cardview: False, // Das detaillierte Ansicht detaillierte Ansicht: DETAILFORMATUMATION: DETAILFORTUMATUME: DETAILFASSATUMATUME: DETAILFAIL: DETAILFATUMATUME: DETAILFATTER: PAGINGESTATUME, PAGINGING: PaginationDetailhalign: "Right",, Ich habe die Paging -Tasten nicht verwendet, die mit Bootstrap ausgestattet sind. Ich habe die Button -Gruppe selbst in JQ geschrieben. Im nächsten Artikel werde ich den Schaltflächencode veröffentlichen, damit er zu einem höheren Grad angepasst werden kann.
Das obige ist eine detaillierte Erklärung der SpringMVC+MyBatis+PageHelper -Pagination, die Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!