Beberapa hari yang lalu, saya berbagi implementasi paging dengan kueri pagination SQL tulisan tangan di sini. Sekarang mari kita lihat menggunakan Plugin Plugin Plugin Mybatis Plugin untuk mengimplementasikan paging.
Alasan untuk menggunakan plug-in paging adalah untuk menyederhanakan penulisan kode SQL dan mencapai paging fisik yang lebih baik, yang juga dapat mengurangi kesalahan daripada menulis kode SQL paging lengkap.
Alamat proyek demo plugin mybatis Plugin: free-mybatis_pagehelper_jb51.rar
Saya menggunakan implementasi proyek Maven di sini:
1. Pertama mengimpor dependensi plugin paging:
<dependency> <GroupId> com.github.pagehelper </groupid> <ArTifactId> PageHelper </RiTtifacTID> <Version> 5.0.0 </version> </dependency>
2. Konfigurasikan Plug-in Paging Interceptor
Ada dua plug-in Interceptor halaman konfigurasi untuk dokumen resmi
1. Mengkonfigurasi plug-in interceptor di konfigurasi mybatis xml
<!- Lokasi plugin dalam file konfigurasi harus memenuhi persyaratan, jika tidak kesalahan akan dilaporkan. Urutannya adalah sebagai berikut: Properties?, Pengaturan?, Typealiases?, TypeHandlers?, ObjectFactory?, ObjectWrapperFactory?, Plugins?, Lingkungan?, DatabaseDProvider?, Mappers?-> <llockin> <!-com.github.pagehelper adalah nama paket di mana kelas halaman halaman-lokasi halaman halaman pageHelper itu-pageHelper berada di mana halaman halaman halaman halaman halaman halaman halaman Interceptor = "com.github.pagehelper.pageinterceptor"> <!-Gunakan metode berikut untuk mengonfigurasi parameter, dan akan ada semua parameter yang diperkenalkan nanti-> <nama properti = "param1" value = "value1"/> </plugin> </lugin>
2. Mengkonfigurasi plugin Interceptor di file konfigurasi pegas
Menggunakan metode konfigurasi atribut Spring, Anda dapat menggunakan atribut plugin untuk mengonfigurasinya seperti yang berikut:
<bean id="sqlSessionFactory"> <!-- Pay attention to other configurations--> <property name="plugins"> <array> <bean> <property name="properties"> <!--Configure parameters using the following method, configure one line--> <value> params=value1 </value> </property> </bean> </array> </property></bean>
Di sini saya menggunakan tipe kedua dalam proyek saya, dan parameter di dalamnya dikonfigurasi sesuai dengan situasi aktual, atau mereka dapat dikonfigurasi tanpa
3. Metode Panggilan
Pernyataan SQL lapisan mapper ditulis sesuai dengan metode kueri umum, tanpa menulis paging:
<!-kueri pagination-> <pilih id = "temukan" resultType = "country"> pilih id, countryname, countrycode dari country </select>
Antarmuka Lapisan Mapper:
/*** kueri* @param params* @return*/Daftar publik <Ogara> temukan ();
Antarmuka Layanan Layanan Layanan:
/ ** * kueri pagination * @param params parameter pagination pageno (nomor halaman), halamanzeze (jumlah kueri per halaman) * @return */ pageinfo publik <pountry> menemukan (params params);
Kelas Implementasi Lapisan Bisnis Layanan: PageHelper.Startpage (1, 10); Parameter pertama menunjukkan halaman mana, dan parameter kedua menunjukkan jumlah catatan yang ditampilkan pada setiap halaman
Setelah menjalankan pageHelper.Startpage (1, 10); Pernyataan, Metode Pilih Pertama Segera berikut ini adalah paginated: Daftar <Ogara> Blog = countryMapper.finds ();
Kemudian gunakan PageInfo untuk membungkus hasil kueri, PageInfo <Ogon country> pageInfo = PageInfo baru <Country> (Blog);
dan kembalikan pageInfo ke lapisan kontrol
/*** kueri*/pageinfo publik <pountry> menemukan (params params) // kueri int pageno = params.getpageno (); int pageSize = params.getPageSize (); PageHelper.startpage (pageno, pagesze); Daftar <Ogara> blog = countrymapper.finds (); // Bungkus hasilnya dengan PageInfo <Ogara> pageInfo = new PageInfo <Country> (Blog); return pageInfo; }
Setelah mengembalikan pageInfo di sini, lewati parameter Params Pagination dan parse pageInfo di lapisan pengontrol:
Daftar <Ogara> clist = pageInfo.getList (); Kemudian masukkan klist ke dalam lingkup, dan gunakan <c: foreach> </c: foreach> loop untuk mendapatkan data paging/*** halaman beranda, dan kueri pagination* @return*/@requestmapping ("/index") model dan indeks public (params params) {ModelAndView ModelAndView = new ModelSandView (); // Pertama halaman pertama, kueri 10 params.setpageno (1); params.setPagesize (10); PageInfo <Country> pageInfo = countryservice.finds (params); Daftar <Ogara> clist = pageInfo.getList (); // jumlah kueri panjang cout = countryservice.counts (); modelAndView.addObject ("clist", clist); modelAndView.addObject ("couts", couts); modelAndView.setViewName ("index"); return modelandview; }Di atas adalah semua kode implementasi untuk halaman utama. Sekarang lihat kode untuk semua konfigurasi dan implementasi:
pom.xml
<Project xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://maven.apache.org/pom/4.0.0" xsi: schemaCe = "http:/maven. http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.krry</groupId> <artifactId>maven_pagehepler_ora</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name> maven_pagehepler_ora </name> <rerl> http://maven.apache.org </rerl> <pro properties> <poject.build.sourceencoding> UTF-8 </project.build.sourceencoding> <!-Mybatis Generator-> <duild. <TargetJavaProject> $ {berbasis}/src/main/java </targetJavaproject> <targetmapperpackage> com.isea533.mybatis.mapper </targetmapperpackage> <targetmodelpackage> com.isea533.mybatis.model </targetModelpackage> com.isea533.mybatis.model/target/target> <TargetResourcesProject> $ {berbasis}/src/main/sumber daya </targetResourcesProject> <targetxmlpackage> mapper </targetxmlpackage> <!-kompilasi versi JDK-> <jdk. <mapper.version> 3.3.6 </mapper.version> <pageHelper.version> 5.0.0 </pagehelper.version> <mysql.version> 5.1.29 </mysql.version.version.version.2.4.4 </spring.version.version.version. </ Properties> <Dependencies> <dependency> <groupid> Junit </proupid> <RaintifactId> junit </artifactid> <version> 4.11 </version> <scope> tes </scope> </dependency> </artrency> </grupid> <ArtiFacTID> LOG4J </ARTIFACTID> </Versi </Groupid> <ArtiFacTID> LOG4J </ARTIFACTID> </Versi </Groupid> <ArtiFacTID> LOG4J </ARTIFAK> <dependency> <GroupId> javax.servlet </groupid> <ArTifactId> servlet-api </t Artifactid> <version> 2.5 </version> <scope> disediakan </seupope> </dependency> <ArtiFAcid> versi JAVAX.Servlet.jsp </groupid> <ArtiFacTID> versi JAVAX.Servlet.jsp </groupid> <ArtiFacTID> JAVAX.Servlet.jsp </groupid> <ArtiFacTID> versi JSPAPI.1 JAVAX.JSPID <TRUPTID> <ArtAPID> <scope> disediakan </seupope> </dependency> <dependency> <groupid> javax.servlet </proupid> <t Artifactid> JSTL </artifactid> <version> 1.2 </version> </dependency> <groupid> javax.ws.rs </groupid> <Artifactid> Javax. JAVAX. <version> 2.0 </version> </dependency> <dependency> <GroupId> javax.websocket </groupid> <Artifactid> javax.websocket-api </arttifactid> <version> 1.0 </versies> </dependency> <sgroupid> Javax.annotation </groupid> <soract> <soract> <sornan- Javax.annotation </groupid> <soract> <version> 1.2 </version> </dependency> <dependency> <GroupId> javax.transaction </proupId> <ArTifactId> javax.transaction-API </arttifactid> <version> 1.2 </versifer> </dependency> <!-Spring-<grouppen> <sgroupid> <groupid> org.springfring> <perat/groupid> <Arpeptex> <Arpendency> <groupid> org.springfring> <pringid> <sgroupid> <Arpendency> <Arpendency> <groupid> org.springfring> </groupid> <perpeporid> <Arpendency> <Rupupid> <groupid> ORG.SPRINGFRINGRE> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.springframework</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <ArtifactId> Spring-Web </arttifactid> </gandendency> <dependency> <groupid> org.springframework </groupid> <ArtifactId> Spring-aop </arttifactid> </dependency> <sgroupt> <groupdiF.springframework </groupid> <ArtifactId> <groupsid> org. Ketergantungan-> <dependency> <GroupId> org.codehaus.castor </groupid> <ArtifactId> Castor-xml </artifactid> <version> 1.3.3 </version> </dependency> <!-Dependensi Spring-json-> <groupid> Com.fasterxml.jackson.core </ArtiFid </ARTIFID </ARIFSID </ARIFSID </ARIFSID </ARIFSID </groupsid> com.fasterxml.jackson.core. <version>2.4.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.4.2</version> </dependency> <!--spring-aop dependency--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.2</version> </dependency> <!--upload file--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!--druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.11</version> </Dependency> <!-mybatis-> <dependency> <GroupId> org.mybatis </groupid> <ArtiFacTid> mybatis </artifactid> <version> $ {mybatis.version} </version> <sependency> <Arpendency> <groupid> org.mybatis </versicid> <Artact> <ArtacTID> <ArtacTID> <version> $ {mybatis.spring.version} </version> </ganden> <!-generator mybatis-> <dependency> <groupid> org.mybatis.generator </groupid> <ArTifactid> MyBatis-generator-core </arttifactid> <Tersion> <topact> </sceePOCE </artifactid> <TREACE> </SCOPOCE </SCOPOCY </arttifactid> <REVERSION> <REVERICAL> </SCOPOCE </artifactid> <REVERSION> </.3.2 </Dependency> <!-Plugin Page-> <dependency> <GroupId> com.github.pagehelper </groupid> <ArTifactId> pageHelper </t Artifactid> <version> $ {PageHelper.version} </version> </dependency> <!-General Mapper-> <groups> </Version> </Dependency> <!-General Mapper-> <groups> </Version> </Dependency> <!-General Mapper-> <groups> <groupsid> </Versi> </Dependency> <! <ArTifactId> mapper </stifactid> <version> $ {mapper.version} </version> </dependency> <dependency> <groupid> org.apache.commons </groupid> <ArtiFacTId> Commons-lang3 </artifactid> <version> 3.3.2 </Versi </Dependency> Commons> Commons> </Artifactid> <version> 3.3.2 <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependency> </dependency> </dependencyManagement> <repositories> <repository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <dent> sonatype-nexus-releases </dent> <name> sonatype nexus rilis </name> <ubl> http://oss.sonatype.org/content/repositories/releases </url> <deleass> <danpled> true </enabled> </Releases> <palshots> <danpled> true </dimungkinkan> </releases> <nraphots> <danpal> <danpem </repository> <repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>http://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repository> </repository> </repository> </build> <plugins> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target> 1.7 </target> </configuration> </lugin> </plugins> </build> </joy Project>ApplicationContext.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls XMLNS: AOP = "http://www.springframework.org/schema/aop" xmlns: context = "http://www.springframework.org/schema/tx" xmlns: util = "http:/schema/tx" xmlns: util = "http:/schema" xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.orga/beans/bwweans http://www.springframework.org/schema/beans/spring-leans.xsd http://www.springframework.org/schema/aop http://www.spramework.org/schema/aop/spring.spring.spramework.org/schemaMema/aop/spring http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util Pemindaian-> <konteks: komponen-scan-package = "com.krry"> < /context: component-scan> <!-Impor file sumber daya eksternal-> <konteks: properti-placeHolder lokasi = "classpath: jdbc.properties" /<!-configure druid data sumber-<bean id iD = "-Method" properti =-Method = "init" init "init" init "init" init "init" init "init" init "init" init "init" detasherce = "-pethod" property = "--pethod" property "properti =-Method =" Method "properti =-Method =" Method "property" init "init" dATasOp "dATEPHED" name = "driverclassName" value = "$ {db.driver}" /> <name properti = "url" value = "$ {db.url}" /> <name properti = "username" value = "$ {db.userName}" /> <nama properti = "kata sandi" value = "$ {db.password}" /< /> < /kata sandi < /kata sandi "value =" $ {db.password} " id="txMgr" > <property name="dataSource" ref="dataSource"></property> </bean> <!-- Enable the transaction annotation driver --> <tx:annotation-driven transaction-manager="txMgr" /> <!-- Configure mybatis' sqlSessionFactory --> <bean id="sqlSessionFactory"> <property name = "DataSource" ref = "DataSource"/> <properti name = "configLocation" value = "classpath: mybatis-config.xml"> </prop Property> <Properti nama = "TypealiSespackage" value = "com.krry.entity"/<properti nama = "plugin"> <array> <array> <ray> <-sean> <entity "/<properti name =" plugin "> <array> <array> <array> <-seany! Jika Anda tidak memahaminya, Anda harus menghapus konfigurasi berikut-> <name properti = "properti"> <value> </value> </prop Property> </bean> </r array> </prop Property> </tagel> <!-Konfigurasi dapat memindai pemindai yang dapat memindai mapper secara keseluruhan-> <bean> <!-jika ada jalur laporan yang terpisah, hanya ada beberapa laporan yang terpisah, hanya ada beberapa laporan laporan, hanya ada beberapa laporan laporan, jika ada jalur laporan, jika ada laporan, hanya ada beberapa laporan laporan, jika ada laporan laporan, jika ada beberapa laporan laporan, jika ada jalur laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan laporan, jika ada laporan. value = "com.krry.mapper"> </propt> <name properti = "sqlSessionFactoryBeanName" value = "sqlSessionfactory"> </propermybatis-config.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <configuration> <donging>-Configuration/confluration/confiduring/crobpers/munclation <! name = "Cacheenabled" value = "true" /> <!-Matikan pemuatan instan objek terkait untuk kinerja-> <pengaturan nama = "lazyloadingEnabled" value = "true" /> <!-atur bentuk pemuatan objek yang terkait. Berikut adalah bidang beban berdasarkan permintaan (bidang beban ditentukan oleh SQL). Semua bidang dari tabel terkait tidak akan dimuat untuk meningkatkan kinerja-> <pengaturan nama = "agresivelazyloading" value = "false" /> <!-Untuk pertanyaan SQL yang tidak diketahui, set hasil yang berbeda diizinkan untuk dikembalikan untuk mencapai efek umum-> <pengaturan nama = "MultiplerultSetSenAndenabled" Nilai = "true" /<! value = "true" /> <!-Izinkan untuk menggunakan nilai kunci primer khusus (seperti pengkodean UUID 32-bit yang dihasilkan oleh program sebagai nilai kunci), dan strategi pembuatan PK tabel data akan ditimpa-> <pengaturan nama = "UsegeneratedKeys" value = "true" /> <! Cache SQL untuk operasi pembaruan batch untuk meningkatkan kinerja-> <pengaturan nama = "defaultExecutorType" value = "batch" /> <!-Timeout Jika database belum merespons lebih dari 25.000 detik-> <pengaturan nama = "DefaultSTattimeOut" value = "25" /<pengaturan nama = "LazyLoadTrigerThods" value = "25" /<pengaturan nama = "LazyLoadRigerThods" value = "25" </Pengaturan> <yypealis> <!-alias untuk objek pengguna khusus-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/-> <!-Definisi Batch-> <paket nama = "com.krry.entity"
springmvc.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "http:/schaM. XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-weans-3.0.xsd http:/wwww.spramework.orgemork.orgemework.orgemework.orgemework/orgemork.orgemork.orgemork.orgework.orgemork.orgemork.orgework.orgor.orger.orgemork http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/schema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-nyalakan mode anotasi-> <bean/> <! FormatTingConversionServICeFactoryBean-> <mvc: annotation-driven> <mvc: pesan-konversi register-default = "true"> <bean> <name properti = "mendukung <cuptedMedi> <cist> <value> Teks/polos; charset = UTF-8 </value> <list> <value> Text/Plain; charset = UTF-8 </value> <list> <value> TEXT/PLOCSET; charset = UTF-8 </value> <list> <value> TEXT/POLISE; Charset = UTF-8 </value> TEKS/HTML <Nilai>; </bean> <bean/> <bean/> <bean> <bean> <name properti = "prefixjson" value = "false"/> <properti name = "objectMapper"> <bean> <!-menangani jenis tanggal dalam responsbody-> <name properti = "dateFormat"> <bean> <konstruktor-type = "java." java. "d-d-d-d-d-d-d-do. HH:mm:ss" /> </bean> </property> <!-- Not displayed when the field is null --> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> <property name="supportedMediaTypes"> <list> <value> Aplikasi/JSON; charset = UTF-8 </ value> <value> Aplikasi/X-WWW-Form-Urlencoded; charset = UTF-8 </ value> </list> </property> </ bean> </mvc: paket scan-converter> </mvc: annotation-driven> </mvc-scan-converter> </mvc: annotation-driven> </s!-Paket scan-scan-comperony> </mvc: annotation-driven> </s!-scan comperter> </mvc: annotation-driven> </mvc: scan comperter> </conder-scanonon Base-package = "com.krry.controller"> </konteks: komponen-scan> <!-akses ke file sumber daya statis harus diatur, karena dalam konfigurasi springmvc, semua permintaan (.do, adduser, js/cadangan/css) dalam proyek ini akan diuraikan oleh springmvc, dan semua file static/css/css dalam dan filter ini akan diuraikan oleh springmvc, dan semua file statis/css/css-dalam proyek-dan semua filter static-dan semua file static akan diuraikan oleh SpringMVC, dan semua static Sumber <!-<mvc: default-servlet-handler //>-> <mvc: sumber daya pemetaan = "/sumber daya/**" location = "/sumber daya/"/> <!-Lihat Rendering JSP/Freemaker/Velocity-> <Bean> <!-Buat jalur ke penyimpanan halaman-> <name property = "velocity-> <bean> <! name = "suffix" value = ". jsp"> </propt> </tobel>
jdbc.properties dan log4j.properties tidak perlu ditampilkan, mereka hampir sama
Web.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/weB-apped <play-name> maven_pagehepler </play-name> <creendak-file-file> <creendak-file> index/index </celcome-file> </welcome-file-file> <Context-param> <param-name> ContextConfigLocation </param-name> <param-value> classpath: applicationContext.xml </param-name> <param-value> <listener-class> org.springframework.web.context.contextLoaderListener </engeaner-class> </engeaner> <listener> <listener-class> org.springframework.web.util.introspectorcleanupener </listener-class> </listener> <Terafer> <tering-no-no-no-no-clasher> </listener> <tilfer> <nilter> <nilter> <nilfer--nfound-n-noumer </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> </listener> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <RURL-PATERS>/*</RURL-PATERS> </TERFERTER-MAPPING> <Servlet> <servlet-name> maven_pagehepler </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-on-name> contexcer </servlet-classifcon> <-Param-Con-name> ContexterServlet </servlet-class> <init--param> <param-name-name> contextercerCerver </servlet-classic. <param-value> classpath: springmvc.xml </param-value> </it-param> </servlet> <servlet-mapping> <servlet-name> maven_pagehepler </servlet-name> <rig-Pattern>/Index/Index </url-Pattern> </Servlet-Mapping> <servlet-name> maven_pagehepler </servlet-name> <rucs-pola>/</url-pola> </servlet-mapping> </seb-app>
Kelas Entitas: Country.java
Paket com.krry.entity; negara kelas publik { / *** Kunci utama* / ID integer pribadi; / *** Nama*/ Private String CountryName; / *** Kode*/ Private String CountryCode; Negara Publik (ID Integer, String CountryName, String CountryCode) {this.id = id; this.countryName = countryName; this.countryCode = countrycode; } / *** Dapatkan kunci utama** @return ID - Kunci utama* / integer publik getId () {return id; } / *** Tetapkan kunci utama** @param ID utama* / public void setid (integer id) {this.id = id; } / *** Dapatkan nama** @return countryname - nama* / string publik getCountryName () {return countryname; } / *** Setel nama** @param countryname nama* / public void setCountryName (String countryName) {this.countryname = countryName; } / *** Dapatkan kode** @return countrycode - kode* / string publik getCountryCode () {return countrycode; } / *** Set kode** @param countrycode kode* / public void setCountryCode (String countryCode) {this.countryCode = countrycode; }}Params.java
Paket com.krry.entity;/** * * params * @author krry * @Version 1.0.0 * */kelas publik params {private integer pageSize = 10; Private Integer Pageno = 0; Integer publik getPageno () {return pageno; } public void setPageno (integer pageno) {this.pageno = pageno; } public integer getPageSize () {return pageSize; } public void setPagesize (integer pageSize) {this.pagesize = pageSize; }} Lapisan kegigihan: countrymapper.java
package com.krry.mapper;import java.util.List;import com.krry.entity.Country;/** * * Mapper: Operate database* @author krry * @version 1.0.0 * */public interface CountryMapper { /** * Query* @param params * @return */ public List<Country> finds(); / ** * Hitung * com.krry.dao.admin * Nama metode: countblogs * @author krry * @param params * @return int * @exception * @since 1.0.0 */ jumlah panjang publik (); } Countrymapper.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper naPry = "kry = "kry = "kry = "kry = "kry = "kry = "cry." Kueri pagination-> <pilih id = "temukan" resultType = "country"> pilih id, countryname, countrycode dari country </dect> <!-query Jumlah blog-> <pilih id = "counts" resultType = "long"> pilih Count (*) dari country </pilih> </mapper>
Antarmuka Lapisan Bisnis:
Paket com.krry.service; impor java.util.hashmap; impor java.util.list; import javax.servlet.http.httpservletrequest; import org.apache.ibatis.annotations.param; impor com.github.pageHelper.pageInfo ;parry; com.kryry; com. com.krry.entity.params;/** * Layanan Layanan: Menangani Logika Bisnis (diimplementasikan dalam IMP) * @author asusaad * */antarmuka publik icountryservice {/** * kueri pagination untuk semua blog * @param parameter pagination pageno (nomor halaman), jumlah blog * @param parameter pagino pageno * finds (params params); / ** * Hitung jumlah blog * @param params * @return */ public long counts (); } Kelas Implementasi Lapisan Bisnis
Paket com.krry.service.impl; import java.util.hashmap; impor java.util.list; impor org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.service; impor org.spramramework.sheotype.service; Impor org.spramramework. com.github.pagehelper.pagehelper; import com.github.pagehelper.pageInfo; import com.krry.entity.country; import com.krry.entity.params; import com.krry.mapper.countrymapper; impor com.krry.service.icounryservice.mapper; Asusaad * */ @ServicePublic Classervice mengimplementasikan icountryService {@Autowired swasta countrymapper countrymapper; /*** kueri*/pageinfo publik <pountry> menemukan (params params) {// kueri int pageno = params.getpageno (); int pageSize = params.getPageSize (); PageHelper.startpage (pageno, pagesze); Daftar <Ogara> blog = countrymapper.finds (); // Bungkus hasilnya dengan pageInfo pageInfo <country> pageInfo = new pageInfo <country> (blog); return pageInfo; } / ** * Perhitungan * @param params * @return * / public long counts () {long couts = countryMapper.counts (); mengembalikan cout; }} Lapisan Kontrol: KrryController.java
Paket com.krry.controller; import java.util.arraylist; import java.util.hashmap; impor java.util.list; org.junit.test; import org.springframework.bean.factory.annotation.Autowired; impor org.spramework.bean.factory.annotation.autowired; impor org.spramework.bean.factory org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.responseBody; import org.springframework.web.servlet.modelandview; impor com.github.pageHelper.pageInfo; com.krry.entity.params; import com.krry.service.icocom. ** * krrycontroller * controller layer, diteruskan sebagai permintaan * @author asusaad * */ @controller // berarti bahwa itu adalah pola multi-casing, dan lapisan Web yang dikembalikan oleh masing-masing pengguna berbeda @requestmapping ("REQUESTMAPPING (" REKRY ("REKRY DEXCONED (setiap Pengguna (" Lapisan WEB CLASCONED/ @User (" Icountryservice countryservice; /*** Halaman beranda, dan kueri pagination* @return*/@RequestMapping ("/index") public ModelAndView Index (params params) {ModelAndView ModelAndView = new ModelAndView (); // Pertama halaman pertama, kueri 10 params.setpageno (1); params.setPagesize (10); PageInfo <Country> pageInfo = countryservice.finds (params); Daftar <Ogara> clist = pageInfo.getList (); // jumlah kueri panjang cout = countryservice.counts (); modelAndView.addObject ("clist", clist); modelAndView.addObject ("couts", couts); modelAndView.setViewName ("index"); return modelandview; }/** * kueri pagination untuk permintaan jax * @param params * @return */@responseBody @RequestMapping ("/loadData") hashmap publik <string, objek> loadData (params params) {hashmap <string, object> peta = new hashmap <string> (); PageInfo <Country> pageInfo = countryservice.finds (params); Daftar <Ogara> clist = pageInfo.getList (); Map.put ("Clist", Clist); peta mengembalikan; } //}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.