在Hibernate中连接多个数据库

如何使用Hibernate动态连接到多个mysql数据库?

我相信在Spring中你可以使用一个单独的DataSource来拥有多个SessionFactories。 您可以将特定的SessionFactory传递给适当的DAO。

如果你使用带有spring的hibernate,你可以为每个数据库提供多个hibernate属性xml。 在这些xml文件中,您可以指定数据库主机,用户名,密码,数据库名称和其他连接属性。 您可以使用xml文件创建多个会话工厂,并在DAO类中使用正确的会话工厂。

创建一个包含HibernateProperties和SessionFactory实体的类。 就像是:

public class HibernateSessionFactory { private static final long serialVersionUID = 1L; private static Log log = LogFactory.getLog(HibernateSessionFactory.class); private Resource[] mappingLocations; private Properties hibernateProperties; private SessionFactory factory; 

如果您以后可以使用Spring并使用数据库连接详细信息注入此类,并稍后将此HibernateSessionFactory分配给相关的DAO类,那将是很好的。

我之前做过,或多或少看起来像这样:

    ..... your hibernate mapping files .....     false false false 4 false ${jdbc.url} ${jdbc.username} ${jdbc.password} ${jdbc.driverClassName} ${jdbc.dialect} 5 20 1800 50  org.hibernate.cache.EhCacheProvider WEB-INF/ehcache.xml false convertToNull true true    

不知道如何使用注释做到这一点。