`

hibernate访问两个数据库

阅读更多

该技术博客属于原创 ,转载请注明出处:http://www.pm-road.com/index.php/2015/01/06/330/

 

在项目开发过程中,往往需要跨数据库访问,而hibernate就可以使同一个项目访问不同的数据库。

 

比如说:1:需要访问同一个数据库,不同的用户名(用户名之间访问表的权限不同,具体可查看:oracle中不同用户对数据的影响);

 

2:访问不同的数据库,数据库类型相同;

 

3:访问不同的数据库类型;

 

以上这三种类型都可以用hibernate 实现 。

 

以下就是前两天碰到的一个项目,在这里总结一下PM 经验,接下来,就做一个例子,该例子是使用spring + hibernate 实现的。

 

1:修改spring-hibernate.xml   文件,添加如下代码:

 

 

 

 

 

<!–默认的访问数据库–>

<bean id=”sessionFactory”
        class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>

<!–默认的数据库对应hibernate.cfg.xml文件–>
        <property name=”configLocation” value=”classpath:hibernate.cfg.xml”>
        </property>
    </bean>

 

<!–另一个数据库–>

 

<!–默认的数据库对应acgis_hibernate.cfg.xml文件(文件名自己定义)–>

 

<bean id=”bus_sessionFactory”
        class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
        <property name=”configLocation” value=”classpath:acgis_hibernate.cfg.xml”>
        </property>
   </bean>

 

 

 

 

2:在原来的基础上新建acgis_hibernate.cfg.xml  ,与hibernate.cfg.xml  同级别;内容如下(该文件的内容和hibernate.cfg.xml 内容相似,不同的就是访问数据库的用户名和密码,以及mapping中的实体类配置文件):

 

 

 

<hibernate-configuration>
    <session-factory>
        <!– 正式环境外网 –>
        <property name=”hibernate.connection.url”>jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
        <property name=”hibernate.connection.username”>pout</property>
        <property name=”hibernate.connection.password”>qazaq</property>
       
        <property name=”hibernate.connection.driver_class”>oracle.jdbc.driver.OracleDriver</property>
        <property name=”hibernate.dialect”>org.hibernate.dialect.Oracle9Dialect</property>
       
        <!– 设置是否在Log中显示Hiberate对数据查询的SQL语句,显示出来感觉意义不大,先关掉,需要Debug时再开  –>
        <property name=”hibernate.show_sql”>true</property>
        <property name=”hibernate.current_session_context_class”>thread</property>

        <!– C3P0 connection pool   以下配置可视自己的情况而定 –>
        <property name=”hibernate.connection.provider_class”>org.hibernate.connection.C3P0ConnectionProvider</property>
        <property name=”hibernate.c3p0.max_size”>50</property>
        <property name=”hibernate.c3p0.min_size”>2</property>
        <property name=”hibernate.c3p0.max_size”>50</property>
        <property name=”hibernate.c3p0.initialPoolSize”>2</property>
        <property name=”acquireRetryAttempts”>5</property>
 
        <property name=”hibernate.c3p0.timeout”>120</property>
        <property name=”hibernate.c3p0.max_statements”>100</property>
        <property name=”hibernate.c3p0.idle_test_period”>120</property>
        <property name=”hibernate.c3p0.acquire_increment”>2</property>
        <property name=”hibernate.c3p0.validate”>true</property>

       <!–访问该数据库,对应的实体类,如没有可以不要–>
        <mapping resource=”com/pm_road/tgs/bean/xml/V_station.hbm.xml” />    
        <mapping resource=”com/pm_road/tgs/bean/xml/V_route.xml” />    
        <mapping resource=”com/pm_road/tgs/bean/xml/V_rsrelation.xml” />    
        
    </session-factory>
</hibernate-configuration>

 

 

 

3:在声明Dao的配置文件中,根据不同的DAO 访问不同的数据库这样配置 :

 

 

 

<bean id=”infoDao” class=”com.pm_road.tgs.dao.impl.InfoDaoImpl”>
        <property name=”sessionFactory” ref=”sessionFactory“></property><!–对应上面的id  值”–>
    </bean>
    <bean id=”queryDao” class=”com.pm_road.tgs.dao.impl.QueryDaoImpl”>
        <property name=”sessionFactory” ref=”bus_sessionFactory“></property><!–对应上面的id  值”–>
    </bean>

 

 

 

 

4:配置结束,这样就可以在同一个项目中,访问不同的数据库。

分享到:
评论

相关推荐

    Hibernate访问多个数据库

    总结来说,Hibernate访问多个数据库的关键在于为每个数据库创建单独的配置和`SessionFactory`。在XML配置文件中,每个数据库的连接信息、方言和映射文件都需要明确指定。而在Spring环境中,我们可以利用IoC容器和...

    hibernate自动重新连接数据库proxool的使用

    `Proxool`维护了一个数据库连接的池,当应用程序需要数据库连接时,可以从池中获取;使用完毕后,连接会返回到池中,供其他线程复用。这样避免了频繁创建和销毁连接带来的开销。当连接因各种原因断开时,`Proxool`能...

    hibernate+struts实现数据库查询的例子

    这个“hibernate+struts实现数据库查询的例子”是针对初学者的一个实践教程,旨在展示如何整合这两个框架来实现数据库的查询操作。下面将详细介绍这两个框架及其整合使用的方式。 `Hibernate`是Java平台上的一款...

    简单的springmvc+hibernate的例子orcale数据库

    SpringMVC和Hibernate是Java开发中的两个重要框架,SpringMVC负责处理Web应用程序的请求-响应,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。在这个"简单的springmvc+hibernate例子...

    spring+hibernate整合实现简单数据库添加记录

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,它简化了...

    给hibernate配置文件加密解密的方案

    在上面的代码中,我们定义了两个静态方法:`encrypt` 和 `decrypt`。`encrypt` 方法用于将明文密码加密成密文,以便写入到配置文件中;`decrypt` 方法用于将密文密码解密成明文,以便应用程序使用。 在使用 `...

    Hibernate+Struts数据库操作实例

    总结起来,"Hibernate+Struts数据库操作实例"是一个综合性的示例,旨在教授开发者如何利用这两个框架高效地实现Web应用的数据库管理。通过实践这个实例,开发者不仅可以掌握Hibernate和Struts的基本用法,还能了解到...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    4. **多对多关联**:两个实体之间存在多对多的关系,通常需要通过关联表来实现。 #### 结论 Hibernate通过提供强大的对象关系映射功能,极大地简化了Java应用与数据库的交互过程,使得开发人员能够更加专注于业务...

    使用springmvc+hibernate完成增删改查

    在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们在开发企业级Web应用程序时起着关键作用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求和响应,而Hibernate则是一个对象关系映射(ORM)工具...

    struts2与hibernate整合单表增删改查(超完整)

    本教程将详细介绍如何将这两个框架整合起来,实现一个完整的用户注册和单表数据的增删改查功能,使用MySQL作为后台数据库。 **1. Struts2框架** Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java ...

    现有Mysql数据库,写Spring + Hibernate的配置文件

    在构建企业级应用程序时,Spring框架和Hibernate是两个非常关键的工具。Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)...

    Hibernate 符合JAVA习惯的关系数据库持久化.pdf

    3. **数据访问优化**:通过缓存机制和批处理,Hibernate能够优化数据库访问,提高系统性能。 4. **数据库迁移**:Hibernate的ORM特性使得更换数据库变得相对容易,只需更改配置和映射文件即可。 ### 学习与实践 ...

    数据库与Hibernate教案

    本教案将深入探讨这两个重要概念及其相互关系,同时也涉及AJAX插件在现代Web应用中的运用。 1. **数据库基础**: - 数据库模型:了解关系型数据库的基本原理,如ER模型、表设计和SQL语言。 - SQL查询:掌握SELECT...

    注意hibernate查单一字段和查两个以上的字段返回的结果

    标题中的“注意hibernate查单一字段和查两个以上的字段返回的结果”暗示了这个话题将围绕Hibernate框架在查询数据时,根据查询条件的不同(单个字段与多个字段)可能产生的不同结果进行讨论。Hibernate是Java领域的...

    用struts2加hibernate对学员信息进行增删改查操作

    每个学员对应一个数据库记录,通过Hibernate的注解或XML配置文件完成对象-关系的映射。 6. **事务管理**:由于涉及到数据库操作,因此事务管理是必不可少的。Hibernate提供了自动和手动两种事务管理模式,可以通过...

    基于的Struts和Hibernate简单的BBS论坛系统

    Struts和Hibernate是Java Web开发中的两个重要框架,它们各自在不同的领域提供了强大的支持。Struts是一个MVC(Model-View-Controller)框架,主要用于控制应用程序的流程,使得业务逻辑与表现层分离,提高了代码的...

    HibernateSpring多数据库解决方案.doc

    在互联网行业中,数据库管理是关键的一环,尤其是在大型系统中,常常需要处理多个数据库以实现负载均衡、数据冗余或不同的访问策略。本方案主要探讨如何在基于Hibernate和Spring框架的环境中实现多数据库的管理,...

    电影后台管理系统基于Struts2和Hibernate框架实现(包含数据库)

    电影后台管理系统是一个典型的JavaWeb应用,它利用了Struts2和Hibernate这两个强大的开源框架来构建。Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理用户请求和控制应用程序流程,而Hibernate...

Global site tag (gtag.js) - Google Analytics