该技术博客属于原创 ,转载请注明出处: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访问多个数据库的关键在于为每个数据库创建单独的配置和`SessionFactory`。在XML配置文件中,每个数据库的连接信息、方言和映射文件都需要明确指定。而在Spring环境中,我们可以利用IoC容器和...
`Proxool`维护了一个数据库连接的池,当应用程序需要数据库连接时,可以从池中获取;使用完毕后,连接会返回到池中,供其他线程复用。这样避免了频繁创建和销毁连接带来的开销。当连接因各种原因断开时,`Proxool`能...
这个“hibernate+struts实现数据库查询的例子”是针对初学者的一个实践教程,旨在展示如何整合这两个框架来实现数据库的查询操作。下面将详细介绍这两个框架及其整合使用的方式。 `Hibernate`是Java平台上的一款...
SpringMVC和Hibernate是Java开发中的两个重要框架,SpringMVC负责处理Web应用程序的请求-响应,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。在这个"简单的springmvc+hibernate例子...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)工具,它简化了...
在上面的代码中,我们定义了两个静态方法:`encrypt` 和 `decrypt`。`encrypt` 方法用于将明文密码加密成密文,以便写入到配置文件中;`decrypt` 方法用于将密文密码解密成明文,以便应用程序使用。 在使用 `...
总结起来,"Hibernate+Struts数据库操作实例"是一个综合性的示例,旨在教授开发者如何利用这两个框架高效地实现Web应用的数据库管理。通过实践这个实例,开发者不仅可以掌握Hibernate和Struts的基本用法,还能了解到...
4. **多对多关联**:两个实体之间存在多对多的关系,通常需要通过关联表来实现。 #### 结论 Hibernate通过提供强大的对象关系映射功能,极大地简化了Java应用与数据库的交互过程,使得开发人员能够更加专注于业务...
在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们在开发企业级Web应用程序时起着关键作用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求和响应,而Hibernate则是一个对象关系映射(ORM)工具...
本教程将详细介绍如何将这两个框架整合起来,实现一个完整的用户注册和单表数据的增删改查功能,使用MySQL作为后台数据库。 **1. Struts2框架** Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java ...
在构建企业级应用程序时,Spring框架和Hibernate是两个非常关键的工具。Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)...
3. **数据访问优化**:通过缓存机制和批处理,Hibernate能够优化数据库访问,提高系统性能。 4. **数据库迁移**:Hibernate的ORM特性使得更换数据库变得相对容易,只需更改配置和映射文件即可。 ### 学习与实践 ...
本教案将深入探讨这两个重要概念及其相互关系,同时也涉及AJAX插件在现代Web应用中的运用。 1. **数据库基础**: - 数据库模型:了解关系型数据库的基本原理,如ER模型、表设计和SQL语言。 - SQL查询:掌握SELECT...
标题中的“注意hibernate查单一字段和查两个以上的字段返回的结果”暗示了这个话题将围绕Hibernate框架在查询数据时,根据查询条件的不同(单个字段与多个字段)可能产生的不同结果进行讨论。Hibernate是Java领域的...
每个学员对应一个数据库记录,通过Hibernate的注解或XML配置文件完成对象-关系的映射。 6. **事务管理**:由于涉及到数据库操作,因此事务管理是必不可少的。Hibernate提供了自动和手动两种事务管理模式,可以通过...
Struts和Hibernate是Java Web开发中的两个重要框架,它们各自在不同的领域提供了强大的支持。Struts是一个MVC(Model-View-Controller)框架,主要用于控制应用程序的流程,使得业务逻辑与表现层分离,提高了代码的...
在互联网行业中,数据库管理是关键的一环,尤其是在大型系统中,常常需要处理多个数据库以实现负载均衡、数据冗余或不同的访问策略。本方案主要探讨如何在基于Hibernate和Spring框架的环境中实现多数据库的管理,...
电影后台管理系统是一个典型的JavaWeb应用,它利用了Struts2和Hibernate这两个强大的开源框架来构建。Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理用户请求和控制应用程序流程,而Hibernate...