菜单

用eFrameWork框架完毕急迅找寻

2019年9月21日 - Java

软件系统最大的价值在于用心去帮客商消除各个痛点,须要做好一切的劳作,数据的飞跃寻觅正是中间非常主要的一个环节。那么,什么样的搜索格局才是最高效飞速的吧?近些日子能体会明白最佳的章程是用名称声母检索,用声母检索输入快、作用高,自然可能成为软件的一大亮点。

效果图:(YNEY为浙江恩裕的声母)
manbetx网页手机登录版 1
首先步、扩展一列“MCCN”保存集团名称拼音声母
manbetx网页手机登录版 2
其次步、扩充三个“神速寻找”寻找列
manbetx网页手机登录版 3
其三步、在增添、修改数据时,更新公司名称声母。
manbetx网页手机登录版 4
注:
1.dbo.fun_GetPY为自定义函数,再次来到参数内容的声母。
2.同样模块,只好增添四个,快速寻觅列。
3.{data:id} 为引用数据主键的值。
4.回车展开快速输入框,输入集团名称声母后,回车进行检索。

在路上

查看效果

在中途,要精晓储存;在中途,要学会放下;作者在半路!Stay hungry,Stay foolish。

 

 

 

【布告】博客系统优化升级
    【收藏】Html5 精品能源集中     博乐招募开头啦    

 

SSM框架——完成分页和找寻分页

标签:
springMVC分页追寻分页mybatisssm

2014-05-21 11:09 5517人阅读
评论(9)
收藏
举报

manbetx网页手机登录版 8 分类:

J2EE(9) manbetx网页手机登录版 9

版权表明:本文为博主原创小说,应接转发,请注脚地址。

目录(?)[+]

        分页是JAVA
WEB项目常用的功用,后天在Spring
MVC中达成了简便的分页操作和搜索分页,在此记录一下。使用的框架为(MyBatis+SpringMVC+Spring)。

       
首先大家须求多个分页的工具类:

1.分页

 

[java] view
plain

copy
print?manbetx网页手机登录版 10manbetx网页手机登录版 11

  1. import java.io.Serializable;  
  2.   
  3. /** 
  4.  * 分页 
  5.  */  
  6. public class Page implements Serializable {  
  7.   
  8.     private static final long serialVersionUID = -3198048449643774660L;  
  9.   
  10.     private int pageNow = 1; // 当前页数  
  11.   
  12.     private int pageSize = 4; // 每页展现记录的条数  
  13.   
  14.     private int totalCount; // 总的记录条数  
  15.   
  16.     private int totalPageCount; // 总的页数  
  17.   
  18.     @SuppressWarnings(“unused”)  
  19.     private int startPos; // 最初地方,从0初步  
  20.   
  21.     @SuppressWarnings(“unused”)  
  22.     private boolean hasFirst;// 是或不是有首页  
  23.   
  24.     @SuppressWarnings(“unused”)  
  25.     private boolean hasPre;// 是还是不是有前一页  
  26.   
  27.     @SuppressWarnings(“unused”)  
  28.     private boolean hasNext;// 是还是不是有下一页  
  29.   
  30.     @SuppressWarnings(“unused”)  
  31.     private boolean hasLast;// 是或不是有最终一页  
  32.       
  33.     /** 
  34.      * 通过构造函数 传入  总记录数  和  当前页 
  35.      * @param totalCount 
  36.      * @param pageNow 
  37.      */  
  38.     public Page(int totalCount, int pageNow) {  
  39.         this.totalCount = totalCount;  
  40.         this.pageNow = pageNow;  
  41.     }  
  42.       
  43.     /** 
  44.      * 获得总页数,总页数=总记录数/总页数 
  45.      * @return 
  46.      */  
  47.     public int getTotalPageCount() {  
  48.         totalPageCount = getTotalCount() / getPageSize();  
  49.         return (totalCount % pageSize == 0) ? totalPageCount  
  50.                 : totalPageCount + 1;  
  51.     }  
  52.   
  53.     public void setTotalPageCount(int totalPageCount) {  
  54.         this.totalPageCount = totalPageCount;  
  55.     }  
  56.   
  57.     public int getPageNow() {  
  58.         return pageNow;  
  59.     }  
  60.   
  61.     public void setPageNow(int pageNow) {  
  62.         this.pageNow = pageNow;  
  63.     }  
  64.   
  65.     public int getPageSize() {  
  66.         return pageSize;  
  67.     }  
  68.   
  69.     public void setPageSize(int pageSize) {  
  70.         this.pageSize = pageSize;  
  71.     }  
  72.   
  73.     public int getTotalCount() {  
  74.         return totalCount;  
  75.     }  
  76.   
  77.     public void setTotalCount(int totalCount) {  
  78.         this.totalCount = totalCount;  
  79.     }  
  80.     /** 
  81.      * 获得接纳记录的开首地点 
  82.      * @return 
  83.      */  
  84.     public int getStartPos() {  
  85.         return (pageNow – 1) * pageSize;  
  86.     }  
  87.   
  88.     public void setStartPos(int startPos) {  
  89.         this.startPos = startPos;  
  90.     }  
  91.   
  92.     /** 
  93.      * 是还是不是是第一页 
  94.      * @return 
  95.      */  
  96.     public boolean isHasFirst() {  
  97.         return (pageNow == 1) ? false : true;  
  98.     }  
  99.   
  100.     public void setHasFirst(boolean hasFirst) {  
  101.         this.hasFirst = hasFirst;  
  102.     }  
  103.     /** 
  104.      * 是或不是有首页 
  105.      * @return 
  106.      */  
  107.     public boolean isHasPre() {  
  108.         // 假设有首页就有前一页,因为有首页就不是第一页  
  109.         return isHasFirst() ? true : false;  
  110.     }  
  111.   
  112.     public void setHasPre(boolean hasPre) {  
  113.         this.hasPre = hasPre;  
  114.     }  
  115.     /** 
  116.      * 是还是不是有下一页 
  117.      * @return 
  118.      */  
  119.     public boolean isHasNext() {  
  120.         // 假使有尾页就有下一页,因为有尾页注明不是最后一页  
  121.         return isHasLast() ? true : false;  
  122.     }  
  123.   
  124.     public void setHasNext(boolean hasNext) {  
  125.         this.hasNext = hasNext;  
  126.     }  
  127.     /** 
  128.      * 是不是有尾页 
  129.      * @return 
  130.      */  
  131.     public boolean isHasLast() {  
  132.         // 借使不是终极一页就有尾页  
  133.         return (pageNow == getTotalCount()) ? false : true;  
  134.     }  
  135.   
  136.     public void setHasLast(boolean hasLast) {  
  137.         this.hasLast = hasLast;  
  138.     }  
  139.   
  140. }  

     
 有了那么些工具类后,首先编写MyBatis的XxxxMapper.xml配置文件中的SQL语句,如下:

[html] view
plain

copy
print?manbetx网页手机登录版 12manbetx网页手机登录版 13

  1. <!– 分页SQL语句 –>  
  2. <select id=”selectProductsByPage” resultMap=”返回值类型”>  
  3.   select   
  4.   *  
  5.   from 表名 WHERE user_id = #{userId,jdbcType=INTEGER} limit #{startPos},#{pageSize}   
  6. </select>  
  7. <!– 获得记录的总额 –>  
  8. <select id=”getProductsCount” resultType=”long”>  
  9.   SELECT COUNT(*) FROM 表名 WHERE user_id = #{userId,jdbcType=INTEGER}   
  10. </select>  

             此处我们得以看到,2个<select>需求各自传入3个和1个参数,此时在相应的DAO文件IXxxxDao中编辑接口来编排对应的诀要,方法名和mapper.xml中的id属性值一致:

[java] view
plain

copy
print?manbetx网页手机登录版 14manbetx网页手机登录版 15

  1. /** 
  2.  * 使用申明方式传入多少个参数,客商产品分页,通过登入客商ID查询 
  3.  * @param page 
  4.  * @param userId 
  5.  * @return startPos},#manbetx网页手机登录版,{pageSize}  
  6.  */  
  7. public List<Products> selectProductsByPage(@Param(value=”startPos”) Integer startPos,@Param(value=”pageSize”) Integer pageSize,@Param(value=”userId”) Integer userId);  
  8.   
  9. /** 
  10.  * 取得产品数量音信,通过登陆客商ID查询 
  11.  * @param userId 
  12.  * @return 
  13.  */  
  14. public long getProductsCount(@Param(value=”userId”) Integer userId);  

 

接口定义完结之后要求编写制定相应的业务接口和兑现格局,在接口中定义那样一个方法,然后实现类中覆写一下:

 

[java] view
plain

copy
print?manbetx网页手机登录版 16manbetx网页手机登录版 17

  1. /** 
  2.      * 分页展现商品 
  3.      * @param request 
  4.      * @param model 
  5.      * @param loginUserId 
  6.      */  
  7.     void showProductsByPage(HttpServletRequest request,Model model,int loginUserId);  

       
接下去贯彻类中的方法就是要调用DAO层和接受Controller传入的参数,实行专业逻辑的管理,request用来获得前端传入的参数,model用来向JSP页面再次来到管理结果。

[java] view
plain

copy
print?manbetx网页手机登录版 18manbetx网页手机登录版 19

  1. @Override  
  2. public void showProductsByPage(HttpServletRequest request, Model model,int loginUserId) {  
  3.     String pageNow = request.getParameter(“pageNow”);  
  4.   
  5.     Page page = null;  
  6.   
  7.     List<ProductWithBLOBs> products = new ArrayList<ProductWithBLOBs>();  
  8.   
  9.     int totalCount = (int) productDao.getProductsCount(loginUserId);  
  10.   
  11.     if (pageNow != null) {  
  12.         page = new Page(totalCount, Integer.parseInt(pageNow));  
  13.         allProducts = this.productDao.selectProductsByPage(page.getStartPos(), page.getPageSize(), loginUserId);  
  14.     } else {  
  15.         page = new Page(totalCount, 1);  
  16.         allProducts = this.productDao.selectProductsByPage(page.getStartPos(), page.getPageSize(), loginUserId);  
  17.     }  
  18.   
  19.     model.addAttribute(“products”, products);  
  20.     model.addAttribute(“page”, page);  
  21. }  

       接下来是调控器的编排,当客商要求跳转到那一个具体产品的页面时,就要求通过那些调控器中相应措施的管理,那么些处理进程正是调用业务层的方法来变成,然后回到结果到JSP动态展现,服务器端生成好页面后传给顾客端(浏览器)现实,那正是三个MVC进程。

[java] view
plain

copy
print?manbetx网页手机登录版 20manbetx网页手机登录版 21

  1. /** 
  2.  * 初步化 “笔者的成品”列表 JSP页面,具备分页效用 
  3.  *  
  4.  * @param request 
  5.  * @param model 
  6.  * @return 
  7.  */  
  8. @RequestMapping(value = “映射路线”, method = RequestMethod.GET)  
  9. public String showMyProduct(HttpServletRequest request, Model model) {  
  10.     // 取得SESSION中的loginUser  
  11.     User loginUser = (User) request.getSession().getAttribute(“loginUser”);  
  12.     // 判定SESSION是还是不是失效  
  13.     if (loginUser == null || “”.equals(loginUser)) {  
  14.         return “redirect:/”;  
  15.     }  
  16.   
  17.     int loginUserId = loginUser.getUserId();  
  18.     //此处的productService是流入的IProductService接口的指标  
  19.     this.productService.showProductsByPage(request, model, loginUserId);  
  20.   
  21.     return “跳转到的JSP路线”;  
  22. }  

           
    JSP页面接受部分自己就不写了,每一种人都一样,也正是结合JSTL和EL来写,(在循环输出的时候也做了推断,如若接受的参数为空,那么输出暂无商品,唯有接受的参数不为空的时候,才循环输出,使用<<c:when
    test=”${}”>结合<c:otherwise>),这里只交给分页的有关代码:

 

[html] view
plain

copy
print?manbetx网页手机登录版 22manbetx网页手机登录版 23

  1. <!– 分页功用 start –>  
  2.     <div align=”center”>  
  3.         <font size=”2″>共 ${page.totalPageCount} 页</font> <font size=”2″>第  
  4.             ${page.pageNow} 页</font> <a href=”myProductPage?pageNow=1″>首页</a>  
  5.         <c:choose>  
  6.             <c:when test=”${page.pageNow – 1 > 0}”>  
  7.                 <a href=”myProductPage?pageNow=${page.pageNow – 1}”>上一页</a>  
  8.             </c:when>  
  9.             <c:when test=”${page.pageNow – 1 <= 0}”>  
  10.                 <a href=”myProductPage?pageNow=1″>上一页</a>  
  11.             </c:when>  
  12.         </c:choose>  
  13.         <c:choose>  
  14.             <c:when test=”${page.totalPageCount==0}”>  
  15.                 <a href=”myProductPage?pageNow=${page.pageNow}”>下一页</a>  
  16.             </c:when>  
  17.             <c:when test=”${page.pageNow + 1 < page.totalPageCount}”>  
  18.                 <a href=”myProductPage?pageNow=${page.pageNow + 1}”>下一页</a>  
  19.             </c:when>  
  20.             <c:when test=”${page.pageNow + 1 >= page.totalPageCount}”>  
  21.                 <a href=”myProductPage?pageNow=${page.totalPageCount}”>下一页</a>  
  22.             </c:when>  
  23.         </c:choose>  
  24.         <c:choose>  
  25.             <c:when test=”${page.totalPageCount==0}”>  
  26.                 <a href=”myProductPage?pageNow=${page.pageNow}”>尾页</a>  
  27.             </c:when>  
  28.             <c:otherwise>  
  29.                 <a href=”myProductPage?pageNow=${page.totalPageCount}”>尾页</a>  
  30.             </c:otherwise>  
  31.         </c:choose>  
  32.     </div>  
  33.     <!– 分页作用 End –>  

2.查询分页

       关于查询分页,大约进程完全平等,只是第多个参数(下面是loginUserId)必要经受客户输入的参数,那样的话大家必要在调整器中经受顾客输入的这几个参数(页面中的<input>使用GET格局传参)
然后将其参预到SESSION中,就能够成功查询分页(此处由于“下一页”这中中国足球球联赛链接的原因,使用了区别的JSP页面管理分页和查找分页,权且没找到在一个JSP页面中变成的办法,出现了再也代码,这里的再次代码就是出口内容的这段代码,能够独自拿出去,然后用叁个<include>标签加载到
要求的JSP页面就能够了,那样能够幸免代码重复):

     
这里给出调控器的代码作为参照:

 

[java] view
plain

copy
print?manbetx网页手机登录版 24manbetx网页手机登录版 25

  1. /** 
  2.      * 通过 产品名称 查询产品 
  3.      * @param request 
  4.      * @param model 
  5.      * @return 
  6.      */  
  7.     @RequestMapping(value = “映射地址”, method = RequestMethod.GET)  
  8.     public String searchForProducts(HttpServletRequest request, Model model) {  
  9.         HttpSession session = request.getSession();  
  10.   
  11.         String param = request.getParameter(“param”);  
  12.   
  13.         String condition = (String) session.getAttribute(“condition”);  
  14.   
  15.         //先推断SESSION中的condition是不是为空  
  16.         if (condition == null) {  
  17.             condition = new String();  
  18.             session.setAttribute(“condition”, condition);  
  19.             //假使Session中的condition为空,再推断传入的参数是或不是为空,借使为空就跳转到搜索结果页面  
  20.             if (param == null || “”.equals(param)) {  
  21.                 return “private/space/ProductSearchResult”;  
  22.             }  
  23.         }  
  24.         //固然SESSION不为空,且传入的搜寻条件param不为空,那么将param赋值给condition  
  25.         if (param != null && !(“”.equals(param))) {  
  26.             condition = param;  
  27.             session.setAttribute(“condition”, condition);  
  28.         }  
  29.         //使用session中的condition属性值来作为查询条件  
  30.         this.productService.showSearchedProductsByPage(request, model, condition);  
  31.   
  32.         return “跳转的页面”;  
  33.     }  

manbetx网页手机登录版 26

 


11


0

 

 

自身的同类小说

J2EE(9)

 

猜你在找

JavaWeb程序设计JavaWeb基础核心本领经营发售型网址建设经文JDBC+MyBatis学习摄像微信平台一回开垦入门

DWZ框架分页和寻找作用1MVC框架复习
2Ajax抓实 3搜索提出 4三级联合浮动 5刷新分页
6Ajax局地动态更新数据
CI框架寻觅分页ThinkPHP
31
框架–分页寻找的运用
动用VUE框架达成列表分页成效

 

查阅研究

9楼 alining_1 3天前 11:29发表 [回复]
manbetx网页手机登录版 27

求源码 ,1501911035@qq.com,谢谢

8楼 Alan_DM 3天前 10:18发表 [回复]
manbetx网页手机登录版 28

89680252@qq.com

7楼 Alan_DM 3天前 10:18发表 [回复]
manbetx网页手机登录版 29

能还是无法给个源码
谢谢了

6楼 qq_28227689 4天前 11:04发表 [回复]
manbetx网页手机登录版 30

大神求源代码,邮箱1902646586@qq.com,跪求啊,多谢了

5楼 qq_32072065 2016-06-17 16:18发表 [回复]
manbetx网页手机登录版 31

利害 1093619789@qq.com

4楼 qq_32072065 2016-06-17 14:40发表 [回复]
manbetx网页手机登录版 32

寻找分页

3楼 隨性 2016-05-08 10:46发表 [回复]
manbetx网页手机登录版 33

求源码 ,332836479@qq.com,谢谢

2楼 qq_16639791 2016-04-05 08:26发表 [回复]
manbetx网页手机登录版 34

1535231035@qq.com,谢谢

1楼 qq_16603207 2015-12-15 16:14发表 [回复]
manbetx网页手机登录版 35

求源码,发到作者的邮箱81734911@qq.com 多谢了

您还从未登陆,请[登录]或[注册]

* 以上顾客言论只表示其个人观点,不意味着CSDN网址的见解或立场

 

 

 

大旨技巧类目

总体大旨 Hadoop
AWS 移动游戏
Java Android
iOS Swift
智能硬件
Docker
OpenStack
VPN Spark
ERP IE10
Eclipse
CRM
JavaScript
数据库
Ubuntu
NFC WAP
jQuery
BI HTML5
Spring
Apache
.NET API
HTML SDK
IIS
Fedora
XML LBS
Unity
Splashtop
UML
components Windows
Mobile

Rails
QEMU KDE
Cassandra
CloudStack
FTC
coremail
OPhone
CouchBase
云计算
iOS6
Rackspace Web
App

SpringSide
Maemo
Compuware
大数据
aptech
Perl
Tornado
Ruby
Hibernate
ThinkPHP
HBase
Pure
Solr
Angular Cloud
Foundry

Redis
Scala
Django
Bootstrap

 

manbetx网页手机登录版 36
shu_lin

 

manbetx网页手机登录版 37
manbetx网页手机登录版 38

JVM总结

文章:6篇

阅读:2609

设计模式(JAVA)

文章:8篇

阅读:12016

展开

 

 

公司简单介绍|招聘纳士|广告服务|银行汇款帐号|联系格局|版权注脚|法律顾问|难题报告|合营友人|论坛反映

网址客服杂志客服今日头条客服webmaster@csdn.net400-600-2320|东京更新乐知音讯技艺有限公司 版权全部|福建乐知网络工夫有限义务公司提供商务援助

京 ICP 证 09002463 号|Copyright © 1999-2014,
CSDN.NET, All Rights
Reserved manbetx网页手机登录版 40

manbetx网页手机登录版 41

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图