关于hibernate中多个数据源数据传输的使用:
1.首先需要配置文件:
oracle:oracle.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.url">jdbc:oracle:thin:@ip:1521:orcl</property> <property name="hibernate.connection.username">username</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.hbm2ddl.auto">none</property> <property name="hibernate.jdbc.fetch_size">100</property> <property name="hibernate.jdbc.batch_size">30</property> <!-- 配置二级缓存 --> <property name="hibernate.cache.use_second_level_cache">false</property> <property name="hibernate.cache.use_query_cache">false</property> <!-- Hibernate4 这里和Hibernate3不一样 要特别注意!!!--> <property name="hibernate.cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property> <!-- Hibernate3 --> <!-- <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> --> <!-- 配置C3P0 --> <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="hibernate.c3p0.max_size">10</property> <property name="hibernate.c3p0.min_size">1</property> <property name="hibernate.c3p0.max_statements">3</property> <property name="hibernate.c3p0.timeout">30</property> <property name="hibernate.c3p0.acquire_increment">1</property> <property name="hibernate.c3p0.idle_test_periodt">10</property> <!-- <property name="current_session_context_class">thread</property> --> <mapping class="实体全路径"/> </session-factory> </hibernate-configuration>
oracle使用hibernate4连接配置
public class OracleHibernateUtil { private static Logger logger = Logger.getLogger(OracleHibernateUtil.class);
public static final String ORACLE_CFG = "oracle.cfg.xml"; private static final SessionFactory sessionFactory ; private static Configuration config = null; public static final ThreadLocal<Session> session = new ThreadLocal<Session>(); static { config = new Configuration().configure(ORACLE_CFG); sessionFactory = config.buildSessionFactory(new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry()); } /** * 获取session * @return */ public static Session currentSession() { Session s = session.get(); if(s == null || !s.isOpen()) { s = sessionFactory.openSession(); session.set(s); } if(s != null) { Transaction tran = null; try { tran = s.getTransaction(); } catch (Exception e) { logger.error(e.getMessage(), e); } if(tran != null && !tran.isActive()) { tran.begin(); } } return s; } public static void closeSession() { Session s = session.get(); if(s != null && s.isOpen()) { Transaction tran = null; try { tran = s.getTransaction(); } catch (Exception e) { logger.error(e.getMessage(), e); } if(tran != null && tran.isActive()) { tran.commit(); } else { tran.rollback(); } } session.set(null); if(s != null) { s.close(); } } /** * 提交 */ public static void doCommit() { closeSession(); } }
2. sqlserver配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="hibernate.connection.url">jdbc:sqlserver://ip:1433;databaseName=databasename</property> <property name="hibernate.connection.username">username</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.hbm2ddl.auto">none</property> <property name="hibernate.jdbc.fetch_size">100</property> <property name="hibernate.jdbc.batch_size">30</property> <!-- 配置二级缓存 --> <property name="hibernate.cache.use_second_level_cache">false</property> <property name="hibernate.cache.use_query_cache">false</property> <!-- Hibernate4 这里和Hibernate3不一样 要特别注意!!!--> <property name="hibernate.cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property> <!-- Hibernate3 --> <!-- <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> --> <!-- 配置C3P0 --> <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="hibernate.c3p0.max_size">10</property> <property name="hibernate.c3p0.min_size">1</property> <property name="hibernate.c3p0.max_statements">3</property> <property name="hibernate.c3p0.timeout">30</property> <property name="hibernate.c3p0.acquire_increment">1</property> <property name="hibernate.c3p0.idle_test_periodt">10</property> <!-- <property name="current_session_context_class">thread</property> --> <mapping class="实体全路径名"/> </session-factory> </hibernate-configuration>
hibernate4连接sqlserver2008
public class SqlServerHibernateUtil { private static Logger logger = Logger.getLogger(SqlServerHibernateUtil.class); public static final String DEST_CFG = "sqlserver.cfg.xml"; private static final SessionFactory sessionFactory ; private static Configuration config = null; public static final ThreadLocal<Session> session = new ThreadLocal<Session>(); static { config = new Configuration().configure(SQLSERVER_CFG); sessionFactory = config.buildSessionFactory(new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry()); } /** * 获取session * @return */ public static Session currentSession() { Session s = session.get(); if(s == null || !s.isOpen()) { s = sessionFactory.openSession(); session.set(s); } if(s != null) { Transaction tran = null; try { tran = s.getTransaction(); } catch (Exception e) { logger.error(e.getMessage(), e); } if(tran != null && !tran.isActive()) { tran.begin(); } } return s; } public static void closeSession() { Session s = session.get(); if(s != null && s.isOpen()) { Transaction tran = null; try { tran = s.getTransaction(); } catch (Exception e) { logger.error(e.getMessage(), e); } if(tran != null && tran.isActive()) { tran.commit(); } else { tran.rollback(); } } session.set(null); if(s != null) { s.close(); } } /** * 提交 */ public static void doCommit() { closeSession(); } }
相关推荐
总的来说,Java+Hibernate双数据源配置是一项关键技能,它使得开发者能够在同一个应用中管理和操作多个数据库,实现读写分离、负载均衡等高级功能。结合SpringBoot的自动化配置和AOP特性,能够简化配置过程,提升...
对于多数据源,我们需要创建多个数据源配置,例如: ```yaml spring: datasource: primary: url: jdbc:mysql://localhost:3306/main_db username: root password: password driver-class-name: ...
6. **测试与验证**:编写测试用例确保多数据源配置正确,能正常执行查询、插入等数据库操作。 在提供的`common-muldb-hb`和`common-muldb-mb`文件中,应该包含了完整的配置文件、实体类、Mapper接口和XML映射文件,...
Hibernate 多数据库配置 在 Hibernate 中配置多数据库,并自由切换,可以使用 Spring 框架来实现。...使用 Spring 框架和 Hibernate,我们可以轻松地配置多数据库连接信息,并自由切换不同的数据源。
在多数据源场景下,Hibernate可以配置为连接不同的数据库,使得应用可以根据业务需求灵活切换数据源。 **多数据源** 是指在一个应用中管理多个独立的数据库连接。在本项目中,数据源被配置为Hibernate和Datastore,...
Hibernate数据源配置过程如下: 1. 下载必要的驱动。为了连接MySQL数据库,我们需要下载MySQL的JDBC驱动,即mysql-connector-java-5.0.8-bin.jar,并将其添加到项目的类路径中。 2. 在MyEclipse中创建一个Java项目...
本文将详细介绍在Java服务器端使用Hibernate时,针对MySQL、Oracle及SQL Server三种常见数据库的数据源配置方法。 #### 二、基于Properties文件的数据源配置 在传统的配置方式下,我们通常会在项目的类路径下放置...
在Spring Boot中,我们可以使用@ConfigurationProperties注解来读取YAML或Properties文件中的数据源配置。然后,通过@Bean注解创建Hibernate SessionFactory和TransactionManager,确保它们指向正确的DataSource。 ...
Hibernate作为Java领域内广泛使用的对象关系映射(ORM)工具之一,其灵活高效的数据源配置方式为开发者提供了极大的便利。本文将详细介绍在Hibernate框架中配置不同数据源的方法,帮助读者更好地理解和应用这些配置...
一个hibernate数据源的c3p0配置,希望对你有帮助
本文主要介绍在Spring与Hibernate框架下解决多数据源配置的问题。在企业级应用开发中,因为业务需求的不同,往往需要同时操作多个数据库,这就需要配置多数据源来满足这样的需求。 知识点一:数据源与会话工厂 在...
本知识点主要探讨如何在Spring中集成Hibernate来实现多数据源的动态切换功能,这对于需要处理多种数据源的应用来说至关重要。 首先,我们需要理解什么是多数据源。多数据源意味着一个应用程序可以连接并操作多个...
Hibernate配置各种数据源 <hibernate-configuration> <!– 各属性的配置–> <!—为true表示将Hibernate发送给数据库的sql显示出来 –> ”show_sql”>true <!– SQL方言,这边设定的是MySQL –> ”dialect”>...
### Spring 数据源配置详解 #### 一、Spring与数据源简介 在Java企业级应用开发中,数据库操作是必不可少的一部分。Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据...
"Spring3+Hibernate4+Maven+JUnit 多库多数据源实现"是一个典型的Java Web项目配置,它涉及了多个核心技术来处理复杂的数据管理需求。下面将详细阐述这些技术以及如何协同工作以实现多库多数据源。 首先,Spring...
Hibernate 数据源是 Hibernate 框架中连接数据库的关键组件,它是 Hibernate 与底层数据库进行交互的桥梁。在 Hibernate 应用程序中,数据源扮演着存储数据库连接信息的角色,包括数据库URL、用户名、密码等,使得 ...
项目框架是springMVC+hibernate,一个简单的demo易懂,数据库配置自己修改datasource.properties文件,其中连接了两个MySQL数据库,数据库分别各有一张表,一张student表和一张t_user需要自己创建
6. 测试:最后,通过dstest这样的测试用例,验证多数据源配置是否正确,以及事务处理是否符合预期。 这个压缩包"dstest"可能包含了完成上述配置的源代码和测试用例,可以帮助开发者理解并实践多数据源的配置。学习...
该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...