把Shark的用户管理模块改为Hibernate实现
2005-12-19 11:02
316 查看
Shark的用户管理模块是独立于其它模块的,为了方便与其它系统整合,可以把该模块改为Hibernate实现。
Shark中附带的Hibernate实现代码是针对Shark 1.0版本的,在当前的版本(1.1-2)中,数据库的结构和Shark的API都发生了变化,所以要对Hibernate代码和数据库做一些调整。另外,Shark中附带的Hibernate实现代码是Hibernate 2.0的,如果需要,做一些很小的调整就可以升级到Hibernate 3.0。Hibernate代码的调整完全可以依赖Shark的API说明来做,由于数据库主键都发生了变化,所有查询都需要更改。但是由于Shark的查询方式非常单一,例如对用户表只有一种查询方式,对group表也只有一种查询方式,改动可以很快完成。Shark用户模块的数据库只有4个表,分别是GroupTable、GroupGroupTable、UserGroupTable、UserTable。Shark数据库的主要修改在于主键发生了变化。由于DODS的需要,每个表都有OID和Version两个列,其中OID是主键。因此,主要问题就集中在这两个字段如何赋值。如果采用的是其它系统的用户表就没有这个问题了。以下三个文件是Hibernate的配置文件:hibernate.user.cfg.xmlHibernateUser.hbm.xmlHibernateGroup.hbm.xml放置在{classes}/hbm/UserGroup/目录下,org.enhydra.shark.usertransaction.ThreadLocalSession文件中需要指出配置文件的路径: static { try { sessionFactory = new Configuration().configure( "/hbm/UserGroup/hibernate.user.cfg.xml").buildSessionFactory(); } catch (HibernateException ex) { throw new RootError("Exception building SessionFactory: " + ex.getMessage(), ex); } }
shark.conf需要做如下调整:首先,更换AuthenticationManager接口的实现类,选用HibernateAuthenticationManager#AuthenticationManagerClassName=org.enhydra.shark.authentication.LDAPAuthenticationManager#AuthenticationManagerClassName=org.enhydra.shark.authentication.DODSAuthenticationManagerAuthenticationManagerClassName=org.enhydra.shark.authentication.HibernateAuthenticationManager其次,更换UserGroupManager接口的实现类,选用HibernateUserGroupManager#UserGroupManagerClassName=org.enhydra.shark.usergroup.LDAPUserGroupManager#UserGroupManagerClassName=org.enhydra.shark.usergroup.DODSUserGroupManagerUserGroupManagerClassName=org.enhydra.shark.usergroup.HibernateUserGroupManager第三,更换UserTransactionManager接口的实现类,选择HibernateUserTransactionFactory#UserTransactionManagerClassName=org.enhydra.shark.usertransaction.DODSUserTransactionFactoryUserTransactionManagerClassName=org.enhydra.shark.usertransaction.HibernateUserTransactionFactory总之,用户管理模块改为Hibrnate实现的工作量不大。
Shark中附带的Hibernate实现代码是针对Shark 1.0版本的,在当前的版本(1.1-2)中,数据库的结构和Shark的API都发生了变化,所以要对Hibernate代码和数据库做一些调整。另外,Shark中附带的Hibernate实现代码是Hibernate 2.0的,如果需要,做一些很小的调整就可以升级到Hibernate 3.0。Hibernate代码的调整完全可以依赖Shark的API说明来做,由于数据库主键都发生了变化,所有查询都需要更改。但是由于Shark的查询方式非常单一,例如对用户表只有一种查询方式,对group表也只有一种查询方式,改动可以很快完成。Shark用户模块的数据库只有4个表,分别是GroupTable、GroupGroupTable、UserGroupTable、UserTable。Shark数据库的主要修改在于主键发生了变化。由于DODS的需要,每个表都有OID和Version两个列,其中OID是主键。因此,主要问题就集中在这两个字段如何赋值。如果采用的是其它系统的用户表就没有这个问题了。以下三个文件是Hibernate的配置文件:hibernate.user.cfg.xmlHibernateUser.hbm.xmlHibernateGroup.hbm.xml放置在{classes}/hbm/UserGroup/目录下,org.enhydra.shark.usertransaction.ThreadLocalSession文件中需要指出配置文件的路径: static { try { sessionFactory = new Configuration().configure( "/hbm/UserGroup/hibernate.user.cfg.xml").buildSessionFactory(); } catch (HibernateException ex) { throw new RootError("Exception building SessionFactory: " + ex.getMessage(), ex); } }
shark.conf需要做如下调整:首先,更换AuthenticationManager接口的实现类,选用HibernateAuthenticationManager#AuthenticationManagerClassName=org.enhydra.shark.authentication.LDAPAuthenticationManager#AuthenticationManagerClassName=org.enhydra.shark.authentication.DODSAuthenticationManagerAuthenticationManagerClassName=org.enhydra.shark.authentication.HibernateAuthenticationManager其次,更换UserGroupManager接口的实现类,选用HibernateUserGroupManager#UserGroupManagerClassName=org.enhydra.shark.usergroup.LDAPUserGroupManager#UserGroupManagerClassName=org.enhydra.shark.usergroup.DODSUserGroupManagerUserGroupManagerClassName=org.enhydra.shark.usergroup.HibernateUserGroupManager第三,更换UserTransactionManager接口的实现类,选择HibernateUserTransactionFactory#UserTransactionManagerClassName=org.enhydra.shark.usertransaction.DODSUserTransactionFactoryUserTransactionManagerClassName=org.enhydra.shark.usertransaction.HibernateUserTransactionFactory总之,用户管理模块改为Hibrnate实现的工作量不大。
相关文章推荐
- mysql+pam模块实现vsftp虚拟用户统一管理
- 权限管理系统(用户信息管理模块业务组件实现代码,带注解)
- 基于整合了struts 和hibernate 的j2ee 架构的用户权限管理系统的设计与实现
- 把Shark的InstancePersistence和EventAudit改为Hibernate实现(待续)
- 模块管理常规功能自定义系统的设计与实现(06--第一个用户模块)
- Servlet+JSP+MySQL实现用户管理模块之三、实现用户登录
- 实现用户管理模块和新闻类别管理模块
- Shark 用户管理以及认证管理实现分析
- springmvc05-Spring+Springmvc+Hibernate实现简单的用户管理系统
- Servlet+JSP+MySQL实现用户管理模块之二、实现用户注册
- Servlet+JSP+MySQL实现用户管理模块之五、实现用户删除与恢复
- Servlet+JSP+MySQL实现用户管理模块之六、实现用户信息显示
- Servlet+JSP+MySQL实现用户管理模块之七、实现用户信息更新和重置密码
- Vue + Element UI 实现权限管理系统 前端篇(十二):用户管理模块
- Servlet+JSP+MySQL实现用户管理模块之四、实现用户列表显示
- Servlet+JSP+MySQL实现用户管理模块之一、数据库表设计及创建
- 实现用户管理模块和新闻类别管理模块
- java_web用户的自动登录模块的实现
- Java之------单机版书店管理系统(设计思想和设计模式系列二)用户模块
- Hibernate对于用户表增删该查的实现