三 保存客户&分页查询&Spring解决延迟加载问题
保存客户
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>
<!-- 通过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>
<!-- 如果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解决延迟加载问题的更多相关文章
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
- Mysql系列(五)—— 分页查询及问题优化
一.用法 在Mysql中分页查询使用关键字limit.limit的语法如下: SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 limit关键字带有 ...
- 简单分页查询(web基础学习笔记十三)
一.建立资源文件和工具类 1.1 .database.properties jdbc.driver_class=oracle.jdbc.driver.OracleDriver jdbc.connect ...
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- Spring data JPA 理解(默认查询 自定义查询 分页查询)及no session 三种处理方法
简介:Spring Data JPA 其实就是JDK方式(还有一种cglib的方式需要Class)的动态代理 (需要一个接口 有一大堆接口最上边的是Repository接口来自org.springfr ...
- 三 Spring对于延迟加载问题的解决
Spring提供了延迟加载问题的解决方法 什么是延迟加载? 延迟加载:lazy(懒加载) 执行到该行代码的时候不会发送语句,真正使用这个对象的属性的时候才会发送sql语句进行查询. 类级别延迟加载:指 ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- EasyUi+Spring Data 实现按条件分页查询
Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...
- Django 分页查询并返回jsons数据,中文乱码解决方法
Django 分页查询并返回jsons数据,中文乱码解决方法 一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF- ...
随机推荐
- win10上的程序兼容win7、xp等
- mcast_get_if函数
#include <errno.h> int sockfd_to_family(int); int mcast_get_if(int sockfd) { switch (sockfd_to ...
- 软件工程 - Test-Driven Development (TDD),测试驱动开发
参考 https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/3328831?fr=al ...
- MySQL(window10)加载配置文件的顺序
mysql加载配置的顺序为:(mysql --help中有详细的说明) C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:***\my ...
- 【原】python常用模块
1.os模块 对操作系统中文件/目录等进行操作 2.sys模块 对python版本进行操作 3.正则re模块 4.datetime,date,time模块 5.hashlib,md5模块 hashli ...
- 820算法复试 Eratasthene 质数筛选
Eratasthene 学问之道无他,求其放心而巳矣 https://blog.csdn.net/qq_37653144/article/details/80470029 class Solution ...
- Linux系统在IT行业处于什么位置
相信每一位程序员对于linux都不陌生,不管是新入行的小白,还是有着十几年编程经验的大佬,都知道Linux在IT行业中的位置吧! 我是一名Web JAVA开发的小白,对于初入IT行业的小白来说,工 ...
- 最近公共祖先(LCA)问题
目录 最近公共祖先 1.向上标记法 2.树上倍增法 3.Tarjan算法 最近公共祖先 定义:给定一颗有根树,若结点 z 既是 x 的祖先,也是 y 的祖先,则称 z 是 x,y 的公共祖先.在 x, ...
- task20160125
http://task.zbj.com/2034844/n15o1.html 百度开放平台--首页>帮助文档首页>Frontia>Android开发指南>个人数据存储 http ...
- 利用django打造自己的工作流平台(一):从EXCEL到流程化运作
因工作所需以及管理个人一些日常事项,自己基于django(一个基于python的web框架,详细介绍可查阅相关资料)开发了一个简易的工作流平台[平台地址].本文首先简要介绍工作流平台的设计思想及其在项 ...