关于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(); } }
相关推荐
springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。
java服务器端hibernate文件的各种数据源配置,有mySql,oracle,sqlServer等
一个hibernate数据源的c3p0配置,希望对你有帮助
java+hibernate双数据源配置,直接可用
讲解myeclispe中详细的配置hibernate,里面有步骤1,2,
Hibernate配置各种数据源 <hibernate-configuration> <!– 各属性的配置–> <!—为true表示将Hibernate发送给数据库的sql显示出来 –> ”show_sql”>true <!– SQL方言,这边设定的是MySQL –> ”dialect”>...
在hibernate中配置多数据库,并自由切换
置自己的测试环境,需要自己抽象整个框架,引入测试框架中,配合测试自己的测试用例。但是发现数据库连接池老出现问题,搜索问题和答案后,总结一下,备忘。
该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...
多数据源配置demo,配置Spring+Hibernate多数据源整合,
Hibernate的三种连接池设置C3P0、Proxool和DBCP. 详细说明及配置方法 Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.
Spring多数据源配置_分布式数据 Tomcat服务器下的多数据源配置详情 一、环境及框架 Tomcat+spring+hibernate+jotm,还有就是struts、Oracle等 二、需求说明 系统里有2套不同网域的oracle数据库,之间的数据需要进行...
c3p0Jar包,Hibernate配置数据源必备,包含xml配置文件
spring 3.2+ hibernate 3.* +atomikos3.9 配置多数据源 包含所有jar包和源代码,完整项目
项目框架是springMVC+hibernate,一个简单的demo易懂,数据库配置自己修改datasource.properties文件,其中连接了两个MySQL数据库,数据库分别各有一张表,一张student表和一张t_user需要自己创建
这是本人上课过程中为学生讲解hibernate、spring和mysql开发简单项目的截图汇集,大家需要先自己完成数据库以及JDBC数据源的配置,之后按照该截图的顺序就能完成一个最简单的支持数据库事务处理的SH系统,(如果使用...
springboot+consul +hibernate + 多数据源+最新版本2.1.2
spring+hibernate+atomikos实现多数据源分布式事务管理
图文并茂的讲解websphere+hibernate的配置