郁闷死,发个贴一个人都没回复我,我决定再发一次。
假设数据库有3个登录用户,分别是管理员、学生、教师,除了分别创建3个数据库连接、创建3个SessionFactory外,还有什么办法吗?能不能通过数据库用户名和密码访问各个不同的角色的数据库?
PS:注意不是多个DBMS同时访问,而是一个DBMS的多个用户登录访问。

解决方案 »

  1.   

    只要在数据库中登录可以访问,hibernate自然就没问题了
      

  2.   

    那需要如何配置,我知道创建三个sessionFactory没问题,我是问有什么好的办法,同样的连接地址,只是登录账号密码不一样,你不觉得创建多个SessionFactory很麻烦么?有没一种只用一个sessionFactory实现换切账号的?
      

  3.   

    就是数据库有多个不同限权的用户(你可以看做Hibernate的跨数据库访问,需要多个数据库并用Hibernate建立连接),我第一时间想到的是创建三个SessionFactory,供DAO访问数据库,但是这样做感觉怪怪的,因为它们之间就只有数据库用户名跟密码不一样而已,能否实现在应用程序中通过动态修改数据库的用户名和密码实现不同用户换切呢?
      

  4.   

    好吧,最好的办法,如果是我,
    手写自己的自定义框架,抛弃hibernate,
    使用hibernate有什么优点:可以封装数据,少写点sql代码!
    其实只要你精通java反射机制,精通java,你就可以写出一款比hibernate强N倍的框架来,SessionFactory也许只是多余的!
      

  5.   

    如果各登入用户有操作其实用户表权限的话 一个sessionfactory 配制加sechma 好像是这样 很就没用了
      

  6.   

    http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html
      

  7.   

    Hibernate在你真正操作之前就要去链接数据库了,所以,不能。想实现太简单了,不用hibernate,自己写JDBC,用现成的连接池就搞定了。
      

  8.   

    根据标示  HibernateTemplate动态切换SessionFactory , 
    还需要切换HibernateTransactionManager#SessionFactory
      

  9.   

    怎么换切法呢?换切之前是否需要先创建多个sessionfactory?