把Shark的用户管理模块改为Hibernate实现

Shark的用户管理模块是独立于其它模块的,为了方便与其它系统整合,可以把该模块改为Hibernate实现。

Shark中附带的Hibernate实现代码是针对Shark 1.0版本的,在当前的版本(1.1-2)中,数据库的结构和SharkAPI都发生了变化,所以要对Hibernate代码和数据库做一些调整。

另外,Shark中附带的Hibernate实现代码是Hibernate 2.0的,如果需要,做一些很小的调整就可以升级到Hibernate 3.0

Hibernate代码的调整完全可以依赖SharkAPI说明来做,由于数据库主键都发生了变化,所有查询都需要更改。但是由于Shark的查询方式非常单一,例如对用户表只有一种查询方式,对group表也只有一种查询方式,改动可以很快完成。

Shark用户模块的数据库只有4个表,分别是GroupTableGroupGroupTableUserGroupTableUserTableShark数据库的主要修改在于主键发生了变化。由于DODS的需要,每个表都有OIDVersion两个列,其中OID是主键。因此,主要问题就集中在这两个字段如何赋值。如果采用的是其它系统的用户表就没有这个问题了。

以下三个文件是Hibernate的配置文件:

hibernate.user.cfg.xml

HibernateUser.hbm.xml

HibernateGroup.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.DODSAuthenticationManager

AuthenticationManagerClassName=org.enhydra.shark.authentication.HibernateAuthenticationManager

其次,更换UserGroupManager接口的实现类,选用HibernateUserGroupManager

#UserGroupManagerClassName=org.enhydra.shark.usergroup.LDAPUserGroupManager

#UserGroupManagerClassName=org.enhydra.shark.usergroup.DODSUserGroupManager

UserGroupManagerClassName=org.enhydra.shark.usergroup.HibernateUserGroupManager

第三,更换UserTransactionManager接口的实现类,选择HibernateUserTransactionFactory

#UserTransactionManagerClassName=org.enhydra.shark.usertransaction.DODSUserTransactionFactory

UserTransactionManagerClassName=org.enhydra.shark.usertransaction.HibernateUserTransactionFactory

总之,用户管理模块改为Hibrnate实现的工作量不大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值