有多个数据库,数据库中的表的结构完全相同。不同的用户登录后,连接到相应的数据库。
问题是:如果不同用户同时登陆,应该怎么创建sessionFactory,不同的用户操作不同的数据库应该怎么处理 

解决方案 »

  1.   

    可以用不同的数据库, 具体的你google一下吧,我在以前的项目中用过
      

  2.   

    一个hibernate.properties文件,多个config xml文件,把公共的内容放在Hibernate.properties中。Hibernate总是先装载Hibernate.properties,然后是config xml,config xml中的配置覆盖Hibernate.properties中相同的配置。 所以你可以把除了数据库连接信息的所有设置,包括mapping映射都放在hibernate.properites中,config xml中放数据库连接信息。 
      

  3.   

    我用的是oracle数据库。
    我的意思是不同的用户访问不同的数据库,库表结构都一样。如果不同的用户同时访问时hibernate怎么处理啊?要多建几个sessionFactory吗?不是一个SessionFactory只能配置一个数据库吗?
    这个是不是有点像Saas了啊?
    谁用例子给发一个啦!
    谢谢啦!
      

  4.   

    多建几个sessionfactory
    如果有事务处理,也要一一对应
      

  5.   

    一个连接要对应一个sessionFactory,不管是用了还是没用Spring。所以连接多个数据库,每个数据库都要有对应的sessionFactory。我很好奇LZ为什么要让用户访问多个同样结构的数据库?
      

  6.   

    如果要创建多个sessionFactory的话,要是企业很多的话,那不是要很多的sessionFactory了吗?
      

  7.   

    多个session链接,使用不同企业的逻辑进行分离;即不同的企业用户使用不同的数据库session进行操作。
    系统登录时肯定知道他是哪个企业或用户类型的,然后构建相应的数据session进行数据操作即可。
      

  8.   


    明白LZ的意思。排除有特殊企业要求,如果单纯的是系统设计所决定的这种格局,那我觉得有点太不必要了,实在是想不通这样做的优点,缺点倒是一大堆,简单说一个,如果使用系统的公司增加一个,你岂不是要手动建立数据库,输入所有表格,然后修改程序来访问这个新数据库?。
    恐怕是这样的,应该是一个公司一个SessionFactory相对应。像上面说的,如果新增一个用户,你怕是要手动建立和修改一大堆东西。
      

  9.   

    写个xml 服务器启动时,读取xml看你用哪个数据库,然后给hibernate配置不同的参数,而表的配置文件不会有改变,只是数据库中会有点改变
      

  10.   

    或者写个控制类来读写hibernate的配置文件
      

  11.   

    楼主的这个需求还是不难的,首先hibernate3的配置方法有三种,1是程序中设定(哪个类哪个方法我忘了)2是properties资源文件,3是最常用的xml,多个数据库连接肯定是需要多个sessionFactory的了,也就是需要多个配置,每个配置对应一个sessionFactory,然后自己写个调度器或工厂串起来,按需要调用即可,目前我就这么玩,我是两个数据库,两套不同的加载策略,合起来是4个sessionFactory。
      

  12.   

    谢谢各位支持哦!
    已经决定不用hibernate了,感觉很麻烦