Springboot spring data jpa 多数据源的配置01
Springboot spring data jpa 多数据源的配置 (说明:这只是引入了多个数据源,他们各自管理各自的事务,并没有实现统一的事务控制)
例: user数据库 global 数据库
1 .application.properties
#database edi configuration
datasource.edi.jdbc-url=jdbc:mysql:///:3306/Bookings?autoReconnect=true&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
datasource.edi.driverClassName=com.mysql.cj.jdbc.Driver
datasource.edi.username=root
datasource.edi.password=root
datasource.edi.sql-script-encoding=UTF-8
datasource.edi.validation-query=SELECT 1
datasource.edi.initial-size=2
#database edi configuration
datasource.bookings.jdbc-url=jdbc:mysql:///:3306/Bookings?autoReconnect=true&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
datasource.bookings.driverClassName=com.mysql.cj.jdbc.Driver
datasource.bookings.username=root
datasource.bookings.password=root
datasource.bookings.sql-script-encoding=UTF-8
datasource.bookings.validation-query=SELECT 1
datasource.bookings.initial-size=2 # Show all queries
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.naming.physical-strategy =com.icil.milestone.push.query.strategy.UpperTableStrategy
2.配置: (下面为bookings数据库的配置)
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource; @Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "bookingsEntityManagerFactory",
transactionManagerRef = "bookingsTransactionManager",
basePackages = {"com.icil.elsa.collection.repository.bookings"})//repository的路径,给个数据源,务必单独一个文件夹
public class BookingsDbConfig { @Qualifier("bookingsDataSource")
@Bean(name = "bookingsDataSource")
@ConfigurationProperties(prefix = "datasource.bookings") //指定数据源的配置
public DataSource bookingsDataSource() {
return DataSourceBuilder.create().build();
} /*protected Map<String, Object> jpaProperties() {
Map<String, Object> props = new HashMap<>();
props.put("hibernate.physical_naming_strategy", SpringPhysicalNamingStrategy.class.getName());
props.put("hibernate.implicit_naming_strategy", SpringImplicitNamingStrategy.class.getName());
return props;
}*/ @Bean("bookingsEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder, @Qualifier("bookingsDataSource") DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.icil.elsa.collection.entries.bookings") ////指定实体对象的路径,给个数据源,务必单独一个文件夹
.persistenceUnit("bookings")
.build();
} @Bean(name = "bookingsTransactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("bookingsEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
} @Bean(name = "bookingJdbcTemplate")
public JdbcTemplate bookingJdbcTemplate(@Qualifier("bookingsDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
} }
配置: (下面为EDI数据库的配置--和上面一样) booking 改为EDI
Springboot spring data jpa 多数据源的配置01的更多相关文章
- Spring Boot,Spring Data JPA多数据源支持配置
1 配置文件 wisely.primary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.primary.datasource. ...
- springboot:spring data jpa介绍
转载自:https://www.cnblogs.com/ityouknow/p/5891443.html 在上篇文章springboot(二):web综合开发中简单介绍了一下spring data j ...
- Spring Data Jpa 详解 (配置篇)
前言: JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据,结合其他ORM的使用,能达到简化开发 ...
- javaweb各种框架组合案例(六):springboot+spring data jpa(hibernate)+restful
一.介绍 1.springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间 ...
- Spring Boot,Spring Data JPA多数据源支持
1 配置文件 wisely.primary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.primary.datasource. ...
- 快速搭建springmvc+spring data jpa工程
一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...
- Spring Data JPA教程,第一部分: Configuration(翻译)
Spring Data JPA项目旨在简化基于仓库的JPA的创建并减少与数据库交互的所需的代码量.本人在自己的工作和个人爱好项目中已经使用一段时间,它却是是事情如此简单和清洗,现在是时候与你分享我的知 ...
- Spring Data JPA 入门Demo
什么是JPA呢? 其实JPA可以说是一种规范,是java5.0之后提出来的用于持久化的一套规范:它不是任何一种ORM框架,在我看来,是现有ORM框架在这个规范下去实现持久层. 它的出现是为了简化现有的 ...
- spring data jpa 操作pipelinedb 的continuous view 与stream
一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...
随机推荐
- k8s dockerk个人学习(1)
虚拟机部署k8s 1. 创建虚拟机 虚拟机用的是virtualBox和vagrant工具,百度安装virtualBox和vagrant 创建vagrant目录并创建文件Vagrantfile内容为 V ...
- OpenXml操作Word的一些操作总结.无word组件生成word.(转)
http://www.cnblogs.com/zhouxin/p/3174936.html OpenXml相对于用MS提供的COM组件来生成WORD,有如下优势: 1.相对于MS 的COM组件,因为版 ...
- 《Java程序猿面试笔试宝典》之Java变量命名有哪些规则
在Java语言中,变量名.函数名.数组名统称为标识符,Java语言规定标识符仅仅能由字母(a~z.A~Z).数字(0~9).下划线(_)和$组成,而且标识符的第一个字符必须是字母.下划线或$.此外.标 ...
- Ribbon Control
https://documentation.devexpress.com/#WindowsForms/CustomDocument2492 The Ribbon Control replaces tr ...
- 使用EntityFramework6连接MySQL
使用EntityFramework6连接MySQL 不是微软的亲儿子这待遇就是不一样,其中的坑可真实不少,第一次连MySQL足足折腾了我大半天. 废话不多说直接开始. 安装MySQL 从官网上下载最新 ...
- 自适应巡航控制系统——ACC
ACC(Adaptive Cruise Control)自适应巡航控制系统(以下简称ACC)是一种基于传感器识别技术而诞生的智能巡航控制,相比只能根据驾驶者设置的速度进行恒定速度巡航的传统巡航控制系统 ...
- 日志挖掘(logminer)
转. 如何使用logminer分析Oracle 联机日志 笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...
- window.open 和 location.href 区别
window.open():可以在一个网站上打开另外的一个网站的地址 window.location():只能在一个网站中打开本网站的网页
- 无人驾驶之激光雷达&摄像头(主要from 速腾CEO 邱纯鑫分享)
无人驾驶之激光雷达&摄像头 (from 速腾CEO 邱纯鑫公开课分享) 根据听的一些讲座和看的书籍,个人感觉:目前现在的自动驾驶,根本问题还是在于感知(路况,周边物体,交通标识等等),控制的方 ...
- sql存储过程输出
1.存储过程写法 create procedure [dbo].[Y_GetICBillNo] @IsSave smallint, @FBillType int, @BillID VARCHAR (5 ...