"本资源主要展示了如何在Spring MVC、MyBatis和ExtJS 3.4框架下实现权限管理,特别是利用Oracle存储过程进行分页处理。这是一个针对进销存产品开发的优秀参考案例,适用于需要进行复杂权限控制和高效数据展示的系统。" 在Spring MVC中,权限管理通常涉及拦截器(Interceptor)和Spring Security框架的集成。拦截器可以对用户的请求进行预处理,检查用户是否有访问特定资源的权限。Spring Security则提供了全面的安全管理工具,包括认证、授权和访问控制等。 MyBatis是一个轻量级的持久层框架,它允许开发者直接编写SQL语句,将数据库操作与业务逻辑紧密地结合起来。在这个案例中,MyBatis可能被用来执行存储过程,获取和处理数据。 ExtJS是一个强大的JavaScript前端框架,用于构建富客户端应用。在3.4版本中,它提供了Grid组件用于展示数据,可以与后端进行数据交互,实现分页、排序和过滤等功能。在权限管理的场景中,ExtJS可以定制界面,根据用户的角色和权限动态显示或隐藏某些功能和数据。 Oracle存储过程在本案例中扮演了重要角色,作为分页查询的载体。在`pageGrid`存储过程中,接收输入参数如当前页号、每页大小等,计算出起始和结束行号,然后构造SQL查询语句。如果存在WHERE条件,它们会被合并到查询中。最后,通过`EXECUTE IMMEDIATE`执行SQL并返回结果集,这使得存储过程能够灵活地处理不同的查询需求。 分页处理对于大数据量的展示至关重要,它可以提高系统的性能和用户体验。在这个示例中,通过存储过程计算总页数,并基于当前页号和每页大小来定位数据范围,实现了动态分页。同时,搜索功能也被考虑在内,允许用户根据指定条件进行过滤。 总体来说,这个案例展示了如何将Spring MVC、MyBatis和ExtJS集成起来,实现一个功能完善的权限管理系统,特别强调了Oracle存储过程在分页查询中的应用。这样的解决方案对于那些需要高效数据处理、权限控制以及用户友好的前端展示的项目来说,具有很高的参考价值。
(
parm_pageID in number,--页索引,从1开始
parm_pageSize in number,--每页大小
parm_tblName in varchar2,--表名
parm_strWhere in varchar2,--where条件
parm_orderBy in varchar2, --排序条件
parm_search in varchar2, --查询的列
p_rowcount out number, --总条数,输出参数
parm_ref_cur2 out parm_fenye_package.parm_ref_cursor2 --结果集
)
IS
v_sql1 VARCHAR2 (2000); --获取数据的sql语句
v_sql2 VARCHAR2 (4000);
v_pagecount NUMBER; --该条件下记录页数
v_row_start NUMBER; --开始记录
v_row_end NUMBER; --结束记录
v_count number;
--分页获取数据
BEGIN
v_sql1 := 'select count(1) from ' || parm_tblName;
IF parm_strWhere is not NULL OR parm_strWhere <> ''
THEN
v_sql1 := v_sql1 || ' where 1=1 ' || parm_strWhere;
END IF;
execute immediate v_sql1
into p_rowcount;
--计算数据记录开始和结束
v_pageCount := v_count / parm_pageSize + 1;
v_row_start := (parm_pageID - 1) * parm_pageSize + 1;
v_row_end := parm_pageID * parm_pageSize;
v_sql2 := 'select rownum ro, '||parm_search||' from ' || parm_tblName || ' t';
v_sql2 := v_sql2 || ' where rownum<=' || v_row_end;
IF parm_strWhere is not NULL OR parm_strWhere <> ''
THEN
v_sql2 := v_sql2 || parm_strWhere;
END IF;
IF parm_orderBy is not null and parm_orderBy <> ''
THEN
v_sql2 := v_sql2 || ' order by ' || parm_orderBy;
END IF;
v_sql2 := 'select '||parm_search||' from (' || v_sql2 || ') where ro >=' || v_row_start ;
OPEN parm_ref_cur2 FOR v_sql2;
END pageGrid;
----------------------------------------------------------------------------------------------
create or replace package parm_fenye_package is
type parm_ref_cursor1 is ref cursor;
type parm_ref_cursor2 is ref cursor;
剩余8页未读,继续阅读
- 粉丝: 4
- 资源: 31
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全