一 简介

开发过程中,我们都需要和数据库打交道,小项目一个数据库就可以,代码也比较简单,只要连接一个数据库,本文中,由于业务需求,我们需要连接另一个库去查询数据,因此要对旧版本(只实现连接一个库的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配置多个数据源流程相关推荐

  1. jpa 连接多个mysql 数据库_SpringBoot 连接多个数据库

    这里我们假设大家已经熟悉 SpringBoot + JPA 连接单个数据库的开发.如果不熟悉,可以参考:Spring Boot 使用数据库 Pom 依赖和但数据库没有区别,照常引入. JAP 的 En ...

  2. 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 ...

  3. VS2010环境下用c++语言在MFC对话框程序中连接及操作Mysql 数据库

    小编近来由于工作需要,需要折腾一下MySql据库, 由于以前用的数据库不是 MySql, 也不是在 VS2010 , 更不是在 MFC 中连接数据库.所以还颇费了一番周折才实现了把数据插入到数据库表格 ...

  4. linux mysql 10061_详解使用navicat连接远程linux mysql数据库出现10061未知故障

    使用使用navicat连接远程linux mysql数据库出现10061未知故障,设置使用ssh连接后出现2013故障 本机环境:win10 navicat premium mysql数据库主机环境: ...

  5. 最详细Android连接远程的MySQL数据库实例

    最详细Android连接远程的MySQL数据库实例 tags:MySQL 文章目录 最详细Android连接远程的MySQL数据库实例 前言 环境配置 查看MySQL:version方法 新建Andr ...

  6. JAVA通过JDBC连接并操作MySQL数据库

    JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...

  7. Win下通过 Navica t连接Ubuntu下MySQL数据库

    昨天博主遇到一个很棘手的问题,就是如何使用Windows 去连接Ubuntu 下MySQL数据库,最后在网上查阅了相关的资料,浏览了很多前辈们的博客,终于解决这个问题了. 我的电脑配置情况是Windo ...

  8. php网页连mysql_php - 如何在单个网页上连接多个MySQL数据库?

    php - 如何在单个网页上连接多个MySQL数据库? 我将信息分散在几个数据库中,并希望使用PHP将所有信息放到一个网页上. 我想知道如何连接到单个PHP网页上的多个数据库. 我知道如何使用以下方法 ...

  9. 实践案例丨Pt-osc工具连接rds for mysql 数据库失败

    本文分享自华为云社区<Pt-osc工具连接rds for mysql 数据库失败>,原文作者:云技术搬运工 . [现象] 主机可以telent 通rds 端口,并且使用mysql-clie ...

最新文章

  1. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)
  2. 【 D3.js 入门系列 --- 2 】 怎样使用数据和选择元素
  3. Web APi之EntityFramework【CRUD】(三)
  4. 深入理解CSS定位中的堆叠z-index
  5. JDBC 出现references non-existing project XXX, launch configuration问题的解决办法
  6. vue、bus 使用遇到的坑,组件之间无法传值;vue、bus 第一次获取不到值,后面再点击重复执行
  7. 在ccs中添加芯片_985博导团队重大成果,涉及隐私保护领域,已在腾讯与京东、快手的业务中应用...
  8. 打开python文件式_Python File(文件) 方法
  9. HDU1712:ACboy needs your help(分组背包)
  10. linux驱动视频采集卡,在linux下使用视频采集卡
  11. dvwa-sql盲注
  12. laypage 独立控件使用 laypage 不出总页数
  13. IDEA社区版下载安装
  14. imagenet2012 对应 label
  15. Echarts图表之堆积柱形图
  16. Towards Enhancing Fine-grained Details for Image Matting
  17. arp欺骗盗取邻居wifi密码
  18. 史上最详细的HashMap红黑树解析
  19. c语言统计行数单词数字符数,C语言统计字数行数单词数的程序
  20. matlab syms函数例题,matlab函数计算syms f o s z k D t m q T x;p=f-o-(s-o)*(1-erf(0.5*

热门文章

  1. 2019年博客之星年度总评选,希望大家支持投票,非常感谢
  2. Vega 数据分析图表
  3. python bottle 制作表单_python bottle框架
  4. Python机器学习——学习曲线
  5. VirtualAllocEx;WriteProcessMemory;CreateRemoteThread
  6. async 函数——JS中的异步处理方式
  7. 计算机运行一会儿后不显示,为什么电脑开机一会儿后,所有的软件都打不开了,点击都没反应...
  8. CentOS 7.8 系统安装执行 yum -y install mysql-server 报错 No package mysql-seve available
  9. Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)
  10. 双重预防机制数字化管理平台赋能施工企业安全生产