首页 > 编程语言 > 详细

三 保存客户&分页查询&Spring解决延迟加载问题

时间:2019-02-12 17:47:47      阅读:161      评论:0      收藏:0      [点我收藏+]

保存客户

Struts2通过模型驱动拿到封装对象,调用业务层将对象传递到持久层,持久层调用Hibernate模版将对象持久化到数据库。

持久层代码实现:

 技术分享图片

 

分页查询:

  • 创建PageBean实体类,里面有当前页数,每页显示记录数,总记录数,总页数,每页查询到的数据集合List。
  • 当前页数以及每页记录数从前端页面获取(如果为null在web层中给予一个默认值),总记录数由持久层查询行数获得,总页数由总记录数除以每页记录再数向上取值获得。
  • 每页查询到的对象集合由持久层利用DetachedCriteria对象分离条件查询获得。
  • 以上5个属性在业务层进行封装,在web层放入值栈。
  • 前端利用to_page()函数,进行提交,改变属性,改变持久层查询到的List集合,实现分页查询。
  • Spring配置OpenSessionInView过滤器,解决延迟加载问题。

 

PageBean:封装分页查询属性

持久层:查询需要的数据传给业务层

业务层:调用持久层,封装PageBean传给web层,

web层:调用业务层,将PageBean放入值栈

前端:通过改变currPage改变当前页数,通过改变pageSize改变每页记录数,实现分页查询功能

Spring配置OpenSessionInView过滤器,在web层开启事务,web层的操作变成持久态,从而解决延迟加载问题。

 

PageBean:封装分页查询属性

技术分享图片

 

 

持久层:查询需要的数据传给业务层

技术分享图片

 

业务层:调用持久层并传之以分页查询的属性,封装PageBean传给web层

 技术分享图片

 

web层:调用业务层,将PageBean放入值栈

技术分享图片

技术分享图片

 

前端:实现分页查询功能

1 topage函数

技术分享图片

 

2 分页

 

 <TR>
    <TD><SPAN id=pagelink>
            <DIV style="LINE-HEIGHT: 20px; HEIGHT: 20px; TEXT-ALIGN: right">
                共[<B><s:property value="totalCount"/></B>]条记录,[<B><s:property value="totalPage"/></B>]页
                ,每页显示
                
                <!-- 通过改变pageSize改变每页显示记录数 -->
                <select name="pageSize" onchange="to_page()">
                     <option value="3" <s:if test="pageSize==3">selected</s:if> >3</option>
                    <option value="5" <s:if test="pageSize==5">selected</s:if>>5</option>
                    <option value="10" <s:if test="pageSize==10">selected</s:if>>10</option>
                </select><!-- 如果currPage不等于1,则显示以下 -->
                <s:if test="currPage!=1">
                [<A href="javascript:to_page(1)">首页</A>]
                [<A href="javascript:to_page(<s:property value="currPage-1"/>)">前一页</A>]
                </s:if>
                &nbsp;&nbsp;
                
                <!-- 通过a标签实现翻页跳转 -->
                <B>
                <s:iterator var="i" begin="1" end="totalPage">
                   <s:if test="#i == currPage">
                          <s:property value="#i"/>
                   </s:if>
                   <s:else>
                      <a href="javascript:to_page(<s:property value="#i"/>)"><s:property value="#i"/></a>
                   </s:else>
                </s:iterator>
                
                </B>
                &nbsp;&nbsp;
                <!-- 如果currPage不等于总页数,则显示下一页和尾页 -->
                <s:if test="currPage!=totalPage">
                [<A href="javascript:to_page(<s:property value="currPage+1"/>)">后一页</A>] 
                [<A href="javascript:to_page(<s:property value="totalPage"/>)">尾页</A>] 
                到
                </s:if>
                <input type="text" size="3" id="page" name="currPage" /><input type="button" value="Go" onclick="to_page()"/>
            </DIV>
    </SPAN></TD>
</TR>

 

 

 

Spring配置OpenSessionInView过滤器,在web层开启事务,web层的操作变成持久态,从而解决延迟加载问题。

延迟加载问题:字典表里面的

技术分享图片

技术分享图片

 

三 保存客户&分页查询&Spring解决延迟加载问题

原文:https://www.cnblogs.com/ltfxy/p/10366078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!