有这样一个需求,分两步(可以在不同事务里,也可以在同一事务):
1. 实时地,从一个库DBTest1的表Table1里取出数据,存到另一个库DBTest2的表Table2里.
2. 从表Table2中取出数据到前台展示。DBTest1和DBTest2通过proxool连接池配置已经完成。现在我不想要连接池的配置,也不用有Hibernate增删改查每一部分的具体实现方法。但至少有以下两个点:
1. proxool连接池管理类代码 (我不知道连接池怎么取得不同数据库进行操作);
2. Hibernate操作(不知道取得两个不同数据库后,程序代码里怎么通过Hibernate调用) 
这个需求怎么实现? 有个思路前提下,越详细越好,谢谢了!
请高手指教!

解决方案 »

  1.   

    如果是oracle数据量大请往下看,否则友情帮你置顶使用oracle的DBLINK建立两个数据库的联系,速度快,一条SQL语句就搞定...
      

  2.   

    1. 配置两个别名不同的数据库连接应用2. java程序中再使用不同的别名连接事例:
    http://wenku.baidu.com/view/0be633f90242a8956bece4c9.html
      

  3.   

    可是Hibernate是通过SessionFactory来获取连接配置的,我按照你的方法,在proxool.xml里配置了两个数据源。 
    通过SessionFactory怎么获取呢?一个hibernate.cfg.xml里我配置了两个SessionFactory,指定了不同的名称db1和db2。 项目用的是spring的注解方式配置的。继承HibernateDaoSupport的类里面,我用了下面的方式:
    @Resource(name="db1")
    public void setSessionFactory0(SessionFactory sessionFactory) {
    super.setSessionFactory(sessionFactory);
    }启动时候就报错了, org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'db1' is defined是不是我使用的时候有问题?
      

  4.   

    hibernate.cfg.xml配置如下:
    <session-factory name="db1">
    <property name="hibernate.connection.provider_class">
    org.hibernate.connection.ProxoolConnectionProvider
    </property>
    <property name="hibernate.proxool.pool_alias">db1</property>
    <property name="hibernate.proxool.xml">proxool.xml</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.autocommit">true</property>
    <property name="hbm2ddl.auto">update</property>
    <mapping ...... />
    ......
    </session-factory>

    <session-factory name="db2">
    <property name="hibernate.connection.provider_class">
    org.hibernate.connection.ProxoolConnectionProvider
    </property>
    <property name="hibernate.proxool.pool_alias">db2</property>
    <property name="hibernate.proxool.xml">proxool.xml</property>
    <property name="hibernate.proxool.pool_alias"></property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.autocommit">true</property>
    <property name="hbm2ddl.auto">update</property>
    <mapping ....../>
    ......
    </session-factory>proxool.xml配置俩别名:
            <proxool>
    <alias>db1</alias>
    ......
    </proxool>
    <proxool>
    <alias>db2</alias>
    ....
    </proxool>
      

  5.   

    看见你的配置。。就觉得有点问题。。看起来叫别扭下面事例。。仔细看了 就会了。。
    http://my.oschina.net/dyyweb/blog/32810
      

  6.   

    按你数的改了hibernate.cfg.xml配置文件,可SessionFactory在Spring配置文件里,使用注解的话,<tx:annotation-driven transaction-manager="txManager" />只能配置一项,多个SessionFactory怎么进行事务管理啊