jpa 连接多个mysql 数据库_springboot环境jpa配置多个数据源流程
一 简介
开发过程中,我们都需要和数据库打交道,小项目一个数据库就可以,代码也比较简单,只要连接一个数据库,本文中,由于业务需求,我们需要连接另一个库去查询数据,因此要对旧版本(只实现连接一个库的jpa)进行改造,使之可以同时连接两个库。
环境:springboot jdk1.8
数据库:mysql5.7
二改造过程
1、修改yml配置,将图1修改成图2.增加另一个数据库配置atp,同时jpa配置增加命名规则配置naming。
图1
图2
2、增加两个数据库配置对应的config
对两个数据库配置需要分别指定对应的manager和bean生效的路径basePackages.
两个数据库配置定义一个作为primary,默认指定它作为主数据库。
主数据库配置:
@Configuration@EnableTransactionManagement@EnableJpaRepositories(entityManagerFactoryRef = "autodataEntityManagerFactory", transactionManagerRef = "autodataTransactionManager", basePackages = {"test.autodata.dao.repository","test.autodata.common"})public class AutoDataConfig {@Primary@Bean(name = "autodataDataSource")@ConfigurationProperties(prefix = "spring.datasource.autodata")public DataSource autodataDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "autodataEntityManagerFactory")public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, @Qualifier("autodataDataSource") DataSource dataSource) {return builder.dataSource(dataSource).packages("test.autodata.dao.domain").persistenceUnit("autodata").build(); }@Bean(name = "autodataTransactionManager")public PlatformTransactionManager customerTransactionManager(@Qualifier("autodataEntityManagerFactory") EntityManagerFactory autodataEntityManagerFactory) {return new JpaTransactionManager(autodataEntityManagerFactory);}}从数据库配置类似主数据库配置,不用配置primary.
3修改启动类
原本只有一个数据库时,没有配置config的java配置文件,一些配置都直接配置在主启动类里。启动类配置了数据库jpa的两个属性,红色下划线部分,修改成两个数据库后将这部分配置在config里了,见上述配置.
图4
三测试
启动日志初始化两个数据库的配置信息。
图5
两个数据库的配置对应的basepackages目录不同,我们要在对应的目录下写代码。
第一个数据库要将实体类写在dao的domain下,将repository写在dao的repository目录下。第二个数据库则要写在atp对应的目录下。
图6
查询数据库命令如下:
@Repository
public interface CaseOrderTaskInfoRepository extends JpaRepository ,JpaSpecificationExecutor{
@Query(value = "select `order_id` from case_order_task_info s WHERE s.case_id=:caseId",nativeQuery = true)
List findList(@Param("caseId") String caseId);
}
public interface ReExecPlanInfoRepository extends JpaRepository, JpaSpecificationExecutor {
@Query(value = "select p from ReExecPlanInfo p ")
List queryList();
结果如下:
图7
图8
四总结
第一次配置jpa多个数据源,也参考网上各种资料,但是各种报错,最后终于配置成功。
jpa 连接多个mysql 数据库_springboot环境jpa配置多个数据源流程相关推荐
- jpa 连接多个mysql 数据库_SpringBoot 连接多个数据库
这里我们假设大家已经熟悉 SpringBoot + JPA 连接单个数据库的开发.如果不熟悉,可以参考:Spring Boot 使用数据库 Pom 依赖和但数据库没有区别,照常引入. JAP 的 En ...
- spring boot ---- jpa连接和操作mysql数据库
环境: centos6.8,jdk1.8.0_172,maven3.5.4,vim,spring boot 1.5.13,mysql-5.7.23 1.引入jpa起步依赖和mysql驱动jar包 1 ...
- VS2010环境下用c++语言在MFC对话框程序中连接及操作Mysql 数据库
小编近来由于工作需要,需要折腾一下MySql据库, 由于以前用的数据库不是 MySql, 也不是在 VS2010 , 更不是在 MFC 中连接数据库.所以还颇费了一番周折才实现了把数据插入到数据库表格 ...
- linux mysql 10061_详解使用navicat连接远程linux mysql数据库出现10061未知故障
使用使用navicat连接远程linux mysql数据库出现10061未知故障,设置使用ssh连接后出现2013故障 本机环境:win10 navicat premium mysql数据库主机环境: ...
- 最详细Android连接远程的MySQL数据库实例
最详细Android连接远程的MySQL数据库实例 tags:MySQL 文章目录 最详细Android连接远程的MySQL数据库实例 前言 环境配置 查看MySQL:version方法 新建Andr ...
- JAVA通过JDBC连接并操作MySQL数据库
JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...
- Win下通过 Navica t连接Ubuntu下MySQL数据库
昨天博主遇到一个很棘手的问题,就是如何使用Windows 去连接Ubuntu 下MySQL数据库,最后在网上查阅了相关的资料,浏览了很多前辈们的博客,终于解决这个问题了. 我的电脑配置情况是Windo ...
- php网页连mysql_php - 如何在单个网页上连接多个MySQL数据库?
php - 如何在单个网页上连接多个MySQL数据库? 我将信息分散在几个数据库中,并希望使用PHP将所有信息放到一个网页上. 我想知道如何连接到单个PHP网页上的多个数据库. 我知道如何使用以下方法 ...
- 实践案例丨Pt-osc工具连接rds for mysql 数据库失败
本文分享自华为云社区<Pt-osc工具连接rds for mysql 数据库失败>,原文作者:云技术搬运工 . [现象] 主机可以telent 通rds 端口,并且使用mysql-clie ...
最新文章
- python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)
- 【 D3.js 入门系列 --- 2 】 怎样使用数据和选择元素
- Web APi之EntityFramework【CRUD】(三)
- 深入理解CSS定位中的堆叠z-index
- JDBC 出现references non-existing project XXX, launch configuration问题的解决办法
- vue、bus 使用遇到的坑,组件之间无法传值;vue、bus 第一次获取不到值,后面再点击重复执行
- 在ccs中添加芯片_985博导团队重大成果,涉及隐私保护领域,已在腾讯与京东、快手的业务中应用...
- 打开python文件式_Python File(文件) 方法
- HDU1712:ACboy needs your help(分组背包)
- linux驱动视频采集卡,在linux下使用视频采集卡
- dvwa-sql盲注
- laypage 独立控件使用 laypage 不出总页数
- IDEA社区版下载安装
- imagenet2012 对应 label
- Echarts图表之堆积柱形图
- Towards Enhancing Fine-grained Details for Image Matting
- arp欺骗盗取邻居wifi密码
- 史上最详细的HashMap红黑树解析
- c语言统计行数单词数字符数,C语言统计字数行数单词数的程序
- matlab syms函数例题,matlab函数计算syms f o s z k D t m q T x;p=f-o-(s-o)*(1-erf(0.5*
热门文章
- 2019年博客之星年度总评选,希望大家支持投票,非常感谢
- Vega 数据分析图表
- python bottle 制作表单_python bottle框架
- Python机器学习——学习曲线
- VirtualAllocEx;WriteProcessMemory;CreateRemoteThread
- async 函数——JS中的异步处理方式
- 计算机运行一会儿后不显示,为什么电脑开机一会儿后,所有的软件都打不开了,点击都没反应...
- CentOS 7.8 系统安装执行 yum -y install mysql-server 报错 No package mysql-seve available
- Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)
- 双重预防机制数字化管理平台赋能施工企业安全生产