基于ssh的oa系统的设计论文内容摘要:

构后的 ACL模型,解决系统用户权限继承角色权限,以及权限排斥的问题。 权限管理实现授权登陆用户能够添加模块信息、删除模块信息 ,添加角色、删除角色、给角色授权,给用户分配帐号、删除帐号、修改帐号信息,给用户分配角色、给特权用户授权、查看用户信息,普通登陆用户能够查看模块信息、角色信息 、修改用户密码。 本系统采用了分层开发,但是对三层架构做了修改,将持久层合并在业务逻辑层中,系统分为呈现层、业务逻辑层。 呈现层使用 jsp 和 jstl[15]表示。 系统 层次 如图 42 所示 : 领域模型业务逻辑层呈现层 图 42 数据库结构的设计 系统开发中先根据系统需求建立领域模型,根据领域模型构造出实例对象,最后采用 O/R映射工具 Hibernate,从对象模型导出 关 系模型。 领域模型如 图 43所示: M od u l e 模块 1*+ pa r en t+ ch i l dr enO r ga n i z at i on 机构 1*+ pa r en t+ ch i l dr enR o l e 角色 A C L 访问控制列表 *1*1U se r sR ol es 用户角色 *1A p pr ov eI n f o 审批信息 D ocu m en t 公文 *1W or kf l ow 流程 *1A d dr essL i st 通信录 N o t e 便签 In f or m at i o n 公共信息 E m pl oy ee 员工 *1+ or gU se r 用户 * 111*1*1 ap pr ov er*1 cr ea t or1*1* 图 43 系统模型图 数据库表的生成 根据领域模型创建实体类,创建出实体类之间的关联关系。 通过工具 xdoclet 生成实体类的映射文件和 hibernate 配置文件。 利用 hibernate 的工具类倒出数据库表,系统的表结构如下所示: 表 41 t_anization(机构表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 机构 id serialNumber varchar(255) YES NULL 机构编号 Name varchar(255) YES NULL 机构名称 description varchar(255) YES NULL 描述 parentId int(11) YES MUL NULL 父机构 ID 表 42 t_employee (员工表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 员工 id empName varchar(255) YES NULL 员工姓名 gender varchar(255) YES NULL 性别 age int(11) YES NULL 年龄 telephone varchar(255) YES NULL 电话 address varchar(255) YES NULL 地址 varchar(255) YES NULL duty varchar(255) YES NULL 职务 Id int(11) YES MUL NULL 机构 ID remark varchar(255) YES NULL 备注 表 43 t_note (便签表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 便签 id title varchar(255) YES NULL 便签标题 content varchar(255) YES NULL 便签内容 createTime datetime YES NULL 便签日期 createorId int(11) YES MUL NULL 创建者 ID 表 44 t_addressList (通信录表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 通讯录 id name varchar(255) YES NULL 名字 mobilePhone varchar(255) YES NULL 手机电话 homePhone varchar(255) YES NULL 家庭电话 officePhone varchar(255) YES NULL 办公室电话 varchar(255) YES NULL MSN varchar(255) YES NULL MSN Code varchar(255) YES NULL 邮编 address varchar(255) YES NULL 地址 remark varchar(255) YES NULL 备注 creatorId int(11) YES MUL NULL 创建者 ID 表 45 t_user (用户表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 用户 id username varchar(255) YES NULL 用户名 password varchar(255) YES NULL 密码 createTime datetime YES NULL 创建时间 expireTime datetime YES NULL 失效时间 emp int(11) YES UNI NULL 员工 ID 表 46 t_role (角色表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 角色 id roleName varchar(255) YES NULL 角色名 表 47 t_users_roles (用户角色第三方表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment id userId int(11) YES MUL NULL 用户 ID roleId int(11) YES MUL NULL 角色 ID orderNo int(11) YES NULL 角色级别,该字段用于解决权限冲突问题 表 48 t_acl ( acl列表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment id principalType varchar(255) YES NULL 主体类型( Role、User) principalId int(11) YES NULL 主体 id moduleId int(11) YES NULL 模块 id aclState int(11) YES NULL 访问控制状态 aclTriState int(11) YES NULL 是否继承,该字段用于解决权限继承问题 表 49 t_module (模块表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 模块 id moduleName varchar(255) YES NULL 模块名称 url varchar(255) YES NULL 模块的 url orderNo int(11) YES NULL 排序号码 serialNumber varchar(255) YES NULL 模块编号 parentId int(11) YES MUL NULL 父模块 ID 表 410 t_workflow (流程表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 流程 id workflowName varchar(255) YES NULL 流程名称 processDef longblob YES NULL 流程定义 processImage longblob YES NULL 流程图片 表 411 t_document (公文表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 公文 id title varchar(255) YES NULL 公文标题 content longblob YES NULL 公文内容 annex longblob YES NULL 公文附件 description varchar(255) YES NULL 公文描述 createTime datetime YES NULL 创建时间 processInstanceId bigint(20) YES NULL 流程实例 ID status varchar(255) YES NULL 公文状态 createorId int(11) YES MUL NULL 创建者 ID 表 412 t_approveinfo (审批信息表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 审批信息 id approveTime datetime YES NULL 审批时间 ment varchar(255) YES NULL 审批内容 documentId int(11) YES MUL NULL 公文 ID approverId int(11) YES MUL NULL 审批者 ID 表 413 t_information (信息表) Field Type Null Key Default Extra 描述 id int(11) NO PRI NULL auto_increment 信息 id title varchar(255) YES NULL 信息标题 cotent varchar(255) YES NULL 信息内容 annex longblob YES NULL 信息附件 createTime datetime YES NULL 信息发布时间 数据库的操作 Hibernate是现在非常流行的持久化框架,使用 Hibernate进行持久化数据是一个非常好的选择。 在 Hibernate中 Session负责完成对象的持久化操作, Session在 Hibernate中相当于 JDBC Connection中的 Connection。 创建 Session的步骤: 1) 根据传入的 Hibernate 配置文件 或者 创建 Configuration类的实例 : Configuration config = new Configuration().configure(); 2) 根据 Configuration 类实例创建 Session 的工厂 SessionFactory 的实例SessionFactory sessionFactory = (); 3) 创建 Session的实例 : Session session = (); 上述数据库操作要频繁地创建 SessionFatory 实例,管理 session 的打开和关闭,但是创建 SessionFactory 非常耗费系统资源,这种操作不应该是首选方法。 在 Spring 中封装了一个实现 Hibernate相关接口的的基类 HibernateDaoSupport,在这个类中提供了数据访问模板 HibernateTemplate进行持久化操作。 外部类只要继承基类 HibernateDaoSupport,并利用Spring 的依赖注入特性向其注入 SessionFactory 就能使用 Spring 的 HibernateTemplate。 使用 Spring 的 HibernateTemplate 进行持久化操作,就能避免了 SessionFactory 的频繁创建以及避免了对 Sess。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。