回顾
- 多租户的数据库设计
- 三范式和反三范式
- 数据库建模
- 前端环境搭建以及企业的基本CRUD
1 企业分页
1.1 需求分析

1.2 传统的分页
PageBean对象
- 将资料中的PageResult对象拷贝到export_common工程中
- 在export_dao工程中添加对export_common模块的依赖关系
改造controller

改造service

改造dao

页面处理

1.3 PageHelper分页插件
PageHelper是一个开源的基于mybatis的自动分页插件,内置了PageBean对象.使用PageHelper进行分页,我们不在关注如何查询总记录数,不在关注如何进行分页查询,全部都交给PageHelper插件自动完成.使用PageHelper我们仅需要查询全部即可
1.3.1 在项目中引入分页插件
在export_parent工程中导入PageHelper坐标(省略)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
1.3.2 在spring和mybatis整合的配置文件中配置分页插件
在export)_dao工程中进行配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
<!--
自动的生成分页的语句
mysql分页 : limit
oracle分页 : rownum
-->
helperDialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
1.3.3 在service层使用分页插件完成分页查询
-
设置分页参数
PageHelper.startPage(page,size)
-
查询全部
调用dao查询全部
-
构造返回值:PageInfo
new PageInfo(list);
1.4 使用PageHelper完成企业分页

<1> companyController

<2>companyService

<3>companyServiceImpl

<4> company-list页面

2 部门管理

2.1 创建工程基本结构

2.2 部门列表查询

controller

将参数: companyId 传到service层,dao层, 登录者根据自己所在的公司companyId查询,本公司部门信息.
service

dao

映射文件

页面相关代码:

相关页面:

页面处理
在dept-list.jsp中删除
<%-- <shiro:hasPermission name="删除部门"></shiro:hasPermission>--%>
2.2 保存部门
-
进入到保存页面


-
执行保存的动作

点击保存后,将部门信息存入到数据库中,并跳转到list页面进行展示.

相关代码如下:

2.3 修改部门
-
进入到修改的页面

-
执行修改的动作
-

2.4 删除部门
(外键错误 如果想删除父部门,同时删除子部门 将数据库改为cascade)

2.5 代码优化
抽取公共request,response,session到父类中


3 RBAC的权限模型
3.1 概述

基于角色的访问控制(rbac) : 在用户和菜单之间添加一个新的模块角色,只需要对用户指定角色,那么用户自然会获取此角色所对应的所有权限
3.2 数据库表

3.3 saas系统中的权限管理
参与saas系统的人员:
1.软件提供商的(SaaS)管理员 : 具备saas管理响应的权限
2.租用企业员工
2.1 租用企业的管理员 : 具有所有权限
2.2 租用企业的普通员工 : 使用rbac控制权限

4 作业: 用户管理
总结
1.PageHelper插件
2.部门的管理
3.RBAC(用户,角色,菜单,用户角色中间表,角色菜单中间表)
1万+

被折叠的 条评论
为什么被折叠?



