JPA 配置多数据源
来源:互联网 发布:网络主播公司经营范围 编辑:程序博客网 时间:2024/05/18 04:00
1. META-INF/persistence.xml
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="localdb" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/> <property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver"/> <property name="hibernate.connection.username" value="sa"/> <property name="hibernate.connection.password" value="123"/> <property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://localhost:1433/CollectionDB;instance="/> <property name="hibernate.max_fetch_depth" value="3"/> <property name="hibernate.format_sql" value="false" /> <property name="hibernate.hbm2ddl.auto" value="none"/> <property name="javax.persistence.validation.mode" value="none"/> <!-- validate --> </properties> </persistence-unit> <persistence-unit name="remotedb" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/> <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.password" value="123"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/futures?useUnicode=true&characterEncoding=UTF-8"/> <property name="hibernate.max_fetch_depth" value="3"/> <property name="hibernate.format_sql" value="false" /> <property name="hibernate.hbm2ddl.auto" value="none"/> <property name="javax.persistence.validation.mode" value="none"/> </properties> </persistence-unit></persistence>
2. spring-jpa-hibernate.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd"><!-- scan all beans and inject dependence --><context:component-scan base-package="com.myproject" /><bean id="defaultPersistenceUnitManager"class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager"><property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /><!-- comment dataSourceLooup to use jndi --><property name="dataSourceLookup"><beanclass="org.springframework.jdbc.datasource.lookup.BeanFactoryDataSourceLookup" /></property></bean><!-- 整合localjpa --><bean id="localEntityManagerFactory"class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="persistenceUnitManager" ref="defaultPersistenceUnitManager"></property><property name="persistenceUnitName" value="localdb"></property><property name="jpaVendorAdapter"><bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><property name="showSql" value="false"></property><property name="database" value="SQL_SERVER"></property></bean></property></bean><bean id="localtransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="localEntityManagerFactory" /><qualifier value="localEM" /></bean><tx:annotation-driven transaction-manager="localtransactionManager"proxy-target-class="false" /><!-- 整合remotejpa --><bean id="remoteEntityManagerFactory"class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="persistenceUnitManager" ref="defaultPersistenceUnitManager"></property><property name="persistenceUnitName" value="remotedb"></property><property name="jpaVendorAdapter"><bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><property name="showSql" value="false"></property><property name="database" value="MYSQL"></property></bean></property></bean><bean id="remotetransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="remoteEntityManagerFactory" /><qualifier value="remoteEM" /></bean><tx:annotation-driven transaction-manager="remotetransactionManager"proxy-target-class="false" /></beans>
3. StockAccountEntity.java
package com.myproject.example.vo;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name = "stockaccount", schema = "")@SuppressWarnings("serial")public class StockAccountEntity implements java.io.Serializable {@Id@Column(name ="ID",nullable=false,length=40)private java.lang.String id;@Column(name ="USERNAME",nullable=true,length=40)private java.lang.String username;public java.lang.String getId(){return this.id;}public void setId(java.lang.String id){this.id = id;}public java.lang.String getUsername(){return this.username;}public void setUsername(java.lang.String username){this.username = username;}}
4. StockAccountDao.java
package com.myproject.example.dao;import java.util.List;import com.myproject.example.dao.common.MyCriteriaBuilder;import com.myproject.example.vo.StockAccountEntity;public interface StockAccountDao {public List<StockAccountEntity> query(MyCriteriaBuilder cb, int maxResult);public void update(StockAccountEntity entity);public void insert(StockAccountEntity entity);public void delete(StockAccountEntity entity);public StockAccountEntity queryById(int id);}
5.StockAccountDaoBean.java
package com.myproject.example.dao.jpa;import java.util.List;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.persistence.Query;import org.springframework.stereotype.Repository;import com.myproject.example.dao.StockAccountDao;import com.myproject.example.dao.common.MyCriteriaBuilder;import com.myproject.example.vo.StockAccountEntity;@Repositorypublic class StockAccountDaoBean implements StockAccountDao{@PersistenceContext(unitName="localdb")EntityManager em;@Overridepublic List query(MyCriteriaBuilder cb, int maxResult) {String hql = "select a from StockAccountEntity a" + cb.getCriteriaString();Query q = em.createQuery(hql);for(String key : cb.getCriteriaParams().keySet()){q.setParameter(key, cb.getCriteriaParams().get(key));}if(maxResult!=0) q.setMaxResults(maxResult);return q.getResultList();}@Overridepublic void update(StockAccountEntity entity) {em.merge(entity);}@Overridepublic void insert(StockAccountEntity entity) {em.persist(entity);}@Overridepublic void delete(StockAccountEntity entity) {em.remove(entity);}@Overridepublic StockAccountEntity queryById(int id) {return em.find(StockAccountEntity.class, id);}}
6.StockAccountService.java
package com.myproject.example.service;import java.util.Date;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import com.myproject.example.dao.StockCashFlowDao;import com.myproject.example.dao.common.MyCriteria;import com.myproject.example.dao.common.MyCriteriaBuilder;import com.myproject.example.vo.StockCashFlowEntity;@Service@Transactional(value="localEM")public class StockAccountService {@Resourceprivate StockAccountDao stockAccountDaoBean; public List<StockAccountEntity> queryByTradecodeTradedate(String tradeCode, Date lastTradeDate, Date tradeDate){MyCriteriaBuilder accountCB = new MyCriteriaBuilder();cashFlowCB.put(MyCriteria.Type_Equil, "tradecode", tradeCode);cashFlowCB.put(MyCriteria.Type_Bigger, "tradedate", "tradedate1", lastTradeDate);cashFlowCB.put(MyCriteria.Type_SmallerEquil, "tradedate", "tradedate2", tradeDate);List<StockAccountEntity> cashFlowList = stockAccountDaoBean.query(accountCB, 0);return accountList;}}
阅读全文
0 0
- JPA多数据源配置
- JPA 配置多数据源
- jpa+spring配置多数据源
- Spring JPA多数据源配置
- jpa+spring配置多数据源
- jpa+spring配置多数据源
- jpa+spring配置多数据源
- spring data jpa 配置多数据源
- Spring Boot + Spring Data JPA项目配置多数据源
- sping boot多数据源配置_JdbcTemplate+sping data jpa
- spring-boot 使用 spring-data-jpa多数据源配置
- sping4 + jpa 多数据源配置, 多种实现
- Spring Boot,Spring Data JPA多数据源支持配置
- Springboot+jpa多数据源
- Tomcat + JPA多数据源实现
- Spring JPA Data 多数据源
- Spring4+JPA+hibernate4创建多数据源
- SpringBoot JPA 多数据源的使用
- Mysql 导入导出数据库
- Apache Kudu 1.4.0 中文文档 | 那伊抹微笑
- WPF无边框捕获消息改变窗口大小
- Java学习笔记(一)
- Could not resolve dependencies for project . Could not find artifact
- JPA 配置多数据源
- jdbc的基础(一)
- 典型的html5布局
- 浏览器视频文件分段缓存合并成完整的视频
- Mysql5.5 免安装版配置步骤
- HDU2243-AC自动机+矩阵
- 理解模拟退火算法
- 前端面试题总结HTML CSS部分
- awk函数介绍