`
coolhong_luo
  • 浏览: 862 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

答复: Hibernate如何动态链接数据库?

阅读更多
<p>首先定义两个可以切换的数据源</p>
<p>&lt;bean id="dataSource"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"&gt;<br> &lt;property name="driverClassName"<br> value="oracle.jdbc.driver.OracleDriver" /&gt;<br><br> &lt;property name="url" value="${jdbc.url}" /&gt;<br> &lt;property name="username" value="${jdbc.username}" /&gt;<br> &lt;property name="password" value="${jdbc.password}" /&gt;<br> &lt;/bean&gt;</p>
<p> </p>
<p>&lt;bean id="dataSource1"<br>        class="org.apache.commons.dbcp.BasicDataSource"<br>        destroy-method="close"&gt;<br>        &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;<br>        &lt;property name="url" value="${jdbc.url1}"/&gt;<br>        &lt;property name="username" value="${jdbc.username1}" /&gt;<br>        &lt;property name="password" value="${jdbc.password1}" /&gt;<br>    &lt;/bean&gt;</p>
<p> </p>
<p> </p>
<p>2.定义spring 代理 </p>
<p> </p>
<p>&lt;bean id="swapper"  class="org.springframework.aop.target.HotSwappableTargetSource"&gt;<br>           &lt;constructor-arg&gt;&lt;ref local="dataSource"/&gt;&lt;/constructor-arg&gt;<br>    &lt;/bean&gt;<br>    <br>    &lt;bean id="swappableDataSource" class="org.springframework.aop.framework.ProxyFactoryBean"&gt;<br>    &lt;property name="targetSource"&gt;<br>        &lt;ref local="swapper"/&gt;<br>    &lt;/property&gt;<br>&lt;/bean&gt;</p>
<p> </p>
<p>3. 注入datasource</p>
<p>    &lt;bean id="testdao"<br>        class="com.coolhong.test.dao.testdaoibatis"&gt;<br>        &lt;property name="dataSource" ref="swappableDataSource" /&gt;<br>    &lt;/bean&gt;</p>
<p> </p>
<p>4. 切换datasource代码:</p>
<p> </p>
<p> HotSwappableTargetSource swapper = (HotSwappableTargetSource) ctx.getBean("swapper");<br>               Object newTarget = ctx.getBean("dataSource1");<br>               swapper.swap(newTarget);</p>
<p> </p>
<p>这个时候datasource 就自动切换到datasource1</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>第一次回复 ,如果有什么错误的地方 请指正</p>
<p> </p>
<p> </p>
<p> </p>
分享到:
评论

相关推荐

    hibernate中所有数据库方言

    在探讨Hibernate中所有数据库方言之前,我们先简要回顾一下Hibernate框架本身。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用与各种关系型数据库进行交互。它提供了强大的功能,如对象持久化、查询...

    hibernate连接金仓数据库所需jar包集合lib.7z

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过Java对象来操作数据库,极大地简化了数据库操作。金仓数据库,又称为Kingbase,是一款国产的高性能、高可靠性的关系型数据库管理...

    hibernate动态数据库进化版

    【hibernate动态数据库进化版】是一个关于Java持久层框架Hibernate深入学习的主题,它主要探讨了如何在实际项目中让Hibernate更加灵活地适应不同的数据库环境,实现动态的SQL生成和执行。这一进化的版本旨在提高开发...

    Hibernate 配置各种数据库

    Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...

    hibernate动态数据库改进版

    《Hibernate动态数据库改进版》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将深入探讨如何利用Hibernate实现动态数据库操作,并结合具体的实例,介绍一个...

    hibernate自动生成数据库文件

    Hibernate是一款强大的Java持久化框架,它允许开发者将Java对象映射到关系数据库中,从而简化了数据库操作。本文将深入探讨Hibernate如何自动生成数据库文件,以及相关知识点。 首先,Hibernate的核心概念是对象...

    根据hibernate反向生成数据库的java代码

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过Java对象来操作数据库,而无需编写大量的SQL语句。"根据Hibernate反向生成数据库的Java代码"这一主题涉及到的主要知识点包括...

    Hibernate实例 oracel数据库

    标题"Hibernate实例 oracel数据库"表明我们将探讨如何使用ORM框架Hibernate与Oracle数据库进行交互。在实际开发中,Hibernate是Java领域非常流行的一个对象关系映射工具,它允许开发者以面向对象的方式操作数据库,...

    java hibernate不同数据库之间的动态切换

    在本文中,我们将深入探讨如何在Java Hibernate应用中实现不同数据库之间的动态切换。 首先,我们需要理解Hibernate的核心配置文件`hibernate.cfg.xml`。在这个文件中,通常会指定数据库连接的信息,如URL、用户名...

    hibernate与各种数据库的连接配置

    Hibernate 与各种数据库的连接配置 Hibernate 是一个 популяр的对象关系映射(ORM)工具,用于将 Java 对象映射到关系数据库中。为了使用 Hibernate,需要配置连接数据库的设置。下面将介绍 Hibernate 与...

    Hibernate操作数据库

    **标题:“Hibernate操作数据库”** Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。通过使用Hibernate,开发者可以避免编写大量的SQL语句,而是专注...

    hibernate数据库连接

    通过访问提供的博文链接(https://unya.iteye.com/blog/89405),我们可以找到更多关于Hibernate数据库连接的实践经验和深入讲解。 【标签】:“源码”和“工具”表明我们将关注于Hibernate的内部实现以及它作为...

    Hibernate 多数据库支持解决方案

    - Hibernate允许通过配置文件来动态加载对应当前数据库的映射文件。例如,可以创建一个`database.properties`文件,其中包含一个`datasource.type`属性来指定当前使用的数据库类型。根据这个类型,程序可以动态地...

    HIbernate免注解实现操作数据库 及Hibernate3连接SQL的BUG解决办法

    本篇将深入探讨如何在Hibernate中实现数据库操作而无需使用注解,以及如何解决在Hibernate 3中遇到的连接SQL的常见问题。 首先,让我们了解在Hibernate中免注解实现数据库操作的基本步骤: 1. **配置Hibernate**: ...

    hibernate和数据库的各种包

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。在Java开发中,Hibernate是连接Java应用程序与多种数据库(如MySQL和Oracle)的重要桥梁...

    Hibernate与JDBC对于数据库CRUD操作性能示例

    Hibernate与JDBC对于数据库的性能操作对比事例,配置,更多信息资源

    hibernate所需包:hibernate3,依赖包,JDBC

    3. **CGLIB或ASM**: 用于为那些没有默认构造函数或者不可被代理的类生成动态代理,用于Hibernate的懒加载功能。 4. **DOM4J或JAXB**: 处理XML配置文件,如映射文件。 **JDBC** Java Database Connectivity (JDBC)...

    Hibernate入门到精通

    * 支持多种数据库管理系统:Hibernate 支持多种数据库管理系统,例如 Oracle、MySQL、 PostgreSQL 等。 * 提供了高效的数据访问机制:Hibernate 提供了一种高效的数据访问机制,帮助开发者快速地访问和操作数据库。 ...

    Hibernate使用指南

    * 使用 Hibernate:使用 Hibernate 来操作数据库,例如执行查询、插入、更新、删除等操作。 四、 Hibernate 的配置 Hibernate 的配置主要包括以下几个方面: * dialect:数据库方言,每个数据库有不同的数据库...

    分别使用Hibernate和JDBC操作数据库

    **Hibernate** 提供了一种抽象层,将Java对象与数据库表之间的映射自动化,极大地简化了数据库操作。以下是Hibernate的主要知识点: 1. **配置Hibernate**:通过hibernate.cfg.xml文件配置数据库连接信息,实体类...

Global site tag (gtag.js) - Google Analytics