<div id="article_content" class="article_content csdn-tracking-statistics tracking-click" data-mod="popu_519" data-dsm="post" style="overflow: hidden;"> <div class="markdown_views"> <ol> <li>把插件jar包导入项目(具体上篇有介绍<a href="http://blog.csdn.net/qq_33624284/article/details/72821811" target="_blank">http://blog.csdn.net/qq_33624284/article/details/72821811</a>)</li> <li>spring-mybatis.xml文件中配置</li> </ol>css
<pre class="prettyprint"><code class="hljs xml has-numbering"><span class="hljs-comment"><!-- spring和MyBatis完美整合,不须要mybatis的配置映射文件 --></span></br> <span class="hljs-tag"><<span class="hljs-title">bean</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"sqlSessionFactory"</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"org.mybatis.spring.SqlSessionFactoryBean"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"dataSource"</span> <span class="hljs-attribute">ref</span>=<span class="hljs-value">"dataSource"</span> /></span></br> <span class="hljs-comment"><!-- 自动扫描mapping.xml文件 --></span></br> <span class="hljs-tag"><<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"mapperLocations"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"classpath:com/wl/goldatg/mapping/*.xml"</span>></span><span class="hljs-tag"></<span class="hljs-title">property</span>></span></br> <span class="hljs-comment"><!-- 配置分页插件 --></span></br> <span class="hljs-tag"><<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"plugins"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">array</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">bean</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"com.github.pagehelper.PageHelper"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"properties"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">value</span>></span></br> dialect=mysql</br> reasonable=true</br> <span class="hljs-tag"></<span class="hljs-title">value</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">property</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">bean</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">array</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">property</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">bean</span>></span></code></pre>java
<p>## 下面咱们就能够使用 ##</p>mysql
<ul> <li>新建sql语句,返回list结果集</li> </ul>git
<pre class="prettyprint"><code class="hljs cs has-numbering"><<span class="hljs-keyword">select</span> id=<span class="hljs-string">"selectByList"</span> resultMap=<span class="hljs-string">"BaseResultMap"</span>></br> <span class="hljs-keyword">select</span> </br> <include refid=<span class="hljs-string">"Base_Column_List"</span> /></br> <span class="hljs-keyword">from</span> user_t</br> </<span class="hljs-keyword">select</span>></code></pre>github
<ul> <li>service层</li> </ul>spring
<pre class="prettyprint"><code class="hljs cs has-numbering"><span class="hljs-keyword">public</span> List<User> <span class="hljs-title">selectByList</span>() {</br> <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.userDao.selectByList();</br> }</code></pre>sql
<ul> <li>Controller类</li> </ul>数据库
<pre class="prettyprint"><code class="hljs java has-numbering"><span class="hljs-annotation">@RequestMapping</span>(<span class="hljs-string">"/userList"</span>) <span class="hljs-keyword">public</span> String <span class="hljs-title">userList</span>(@<span class="hljs-title">RequestParam</span>(required=<span class="hljs-keyword">true</span>,defaultValue=<span class="hljs-string">"1"</span>) Integer page,HttpServletRequest request,Model model){</br> <span class="hljs-comment">//PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。</span></br> PageHelper.startPage(page, <span class="hljs-number">3</span>);</br> List<User> userList = userService.selectByList();</br> PageInfo<User> p=<span class="hljs-keyword">new</span> PageInfo<User>(userList);</br> model.addAttribute(<span class="hljs-string">"page"</span>, p);</br> model.addAttribute(<span class="hljs-string">"userList"</span>,userList);</br> <span class="hljs-keyword">return</span> <span class="hljs-string">"showUser"</span>;</br> }</code></pre>markdown
<p>PageInfo这个类是插件里的类,很是方便的调用,分页再次提升性能:</p>mybatis
<pre class="prettyprint"><code class="hljs java has-numbering"> <span class="hljs-comment">//当前页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> pageNum;</br> <span class="hljs-comment">//每页的数量</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> pageSize;</br> <span class="hljs-comment">//当前页的数量</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> size;</br> <span class="hljs-comment">//排序</span></br> <span class="hljs-keyword">private</span> String orderBy;</br></br> <span class="hljs-comment">//因为startRow和endRow不经常使用,这里说个具体的用法</span></br> <span class="hljs-comment">//能够在页面中"显示startRow到endRow 共size条数据"</span></br></br> <span class="hljs-comment">//当前页面第一个元素在数据库中的行号</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> startRow;</br> <span class="hljs-comment">//当前页面最后一个元素在数据库中的行号</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> endRow;</br> <span class="hljs-comment">//总记录数</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">long</span> total;</br> <span class="hljs-comment">//总页数</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> pages;</br> <span class="hljs-comment">//结果集</span></br> <span class="hljs-keyword">private</span> List<T> list;</br></br> <span class="hljs-comment">//第一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> firstPage;</br> <span class="hljs-comment">//前一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> prePage;</br> <span class="hljs-comment">//下一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> nextPage;</br> <span class="hljs-comment">//最后一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> lastPage;</br></br> <span class="hljs-comment">//是否为第一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">boolean</span> isFirstPage = <span class="hljs-keyword">false</span>;</br> <span class="hljs-comment">//是否为最后一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">boolean</span> isLastPage = <span class="hljs-keyword">false</span>;</br> <span class="hljs-comment">//是否有前一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">boolean</span> hasPreviousPage = <span class="hljs-keyword">false</span>;</br> <span class="hljs-comment">//是否有下一页</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">boolean</span> hasNextPage = <span class="hljs-keyword">false</span>;</br> <span class="hljs-comment">//导航页码数</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> navigatePages;</br> <span class="hljs-comment">//全部导航页号</span></br> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span>[] navigatepageNums;</code></pre>
<p>使用PageInfo这个类,你须要将查询出来的list放进去:</p>
<pre class="prettyprint"><code class="hljs xml has-numbering">List<span class="hljs-tag"><<span class="hljs-title">User</span>></span> userList = userService.selectByList();</br> PageInfo<span class="hljs-tag"><<span class="hljs-title">User</span>></span> p=new PageInfo<span class="hljs-tag"><<span class="hljs-title">User</span>></span>(userList);</code></pre>
<p>页面使用很是方便,直接贴代码:</p>
<ol> <li>控制层</li> </ol>
<pre class="prettyprint"><code class="hljs avrasm has-numbering">model<span class="hljs-preprocessor">.addAttribute</span>(<span class="hljs-string">"page"</span>, p)<span class="hljs-comment">;</span></code></pre>
<ol> <li>前台页面</li> </ol>
<pre class="prettyprint"><code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">body</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">center</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">table</span> <span class="hljs-attribute">width</span>=<span class="hljs-value">"200"</span> <span class="hljs-attribute">border</span>=<span class="hljs-value">"1"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">tr</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">th</span> <span class="hljs-attribute">scope</span>=<span class="hljs-value">"col"</span>></span>序号<span class="hljs-tag"></<span class="hljs-title">th</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">th</span> <span class="hljs-attribute">scope</span>=<span class="hljs-value">"col"</span>></span>ID<span class="hljs-tag"></<span class="hljs-title">th</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">th</span> <span class="hljs-attribute">scope</span>=<span class="hljs-value">"col"</span>></span>姓名<span class="hljs-tag"></<span class="hljs-title">th</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">th</span> <span class="hljs-attribute">scope</span>=<span class="hljs-value">"col"</span>></span>密码<span class="hljs-tag"></<span class="hljs-title">th</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">th</span> <span class="hljs-attribute">scope</span>=<span class="hljs-value">"col"</span>></span>年龄<span class="hljs-tag"></<span class="hljs-title">th</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">tr</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">c:forEach</span> <span class="hljs-attribute">begin</span>=<span class="hljs-value">"0"</span> <span class="hljs-attribute">step</span>=<span class="hljs-value">"1"</span> <span class="hljs-attribute">items</span>=<span class="hljs-value">"${userList}"</span> <span class="hljs-attribute">var</span>=<span class="hljs-value">"list"</span> <span class="hljs-attribute">varStatus</span>=<span class="hljs-value">"userlist"</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">tr</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">td</span>></span>${userlist.count}<span class="hljs-tag"></<span class="hljs-title">td</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">td</span>></span>${list.id}<span class="hljs-tag"></<span class="hljs-title">td</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">td</span>></span>${list.userName}<span class="hljs-tag"></<span class="hljs-title">td</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">td</span>></span>${list.password}<span class="hljs-tag"></<span class="hljs-title">td</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">td</span>></span>${list.age}<span class="hljs-tag"></<span class="hljs-title">td</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">tr</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">c:forEach</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">table</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">p</span>></span>一共${page.pages}页<span class="hljs-tag"></<span class="hljs-title">p</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"userList?page=${page.firstPage}"</span>></span>第一页<span class="hljs-tag"></<span class="hljs-title">a</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"userList?page=${page.nextPage}"</span>></span>下一页<span class="hljs-tag"></<span class="hljs-title">a</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"userList?page=${page.prePage}"</span>></span>上一页<span class="hljs-tag"></<span class="hljs-title">a</span>></span></br> <span class="hljs-tag"><<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"userList?page=${page.lastPage}"</span>></span>最后页<span class="hljs-tag"></<span class="hljs-title">a</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">center</span>></span></br> <span class="hljs-tag"></<span class="hljs-title">body</span>></span></code></pre>
<p>最后结果显示:(关键点${page.prePage}简单又快捷) <br> <img src="https://img-blog.csdn.net/20170601103012274?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzM2MjQyODQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""></p> </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/production/markdown_views-68a8aad09e.css"> </div> 前台须要传入的参数是当前页和页面显示数目,固然页面显示数目也能够后台规定,通常在接收参数时最好加上默认配置以下: ```java @RequestParam(defaultValue="1",value="pageNum")String pageNum, @RequestParam(defaultValue="10",value="pageSize")String pageSize ```