SpringBoot+JPA+Mybatis+多数据源(MySQL/PostgreSQL)

开始公司主要使用的是Springboot+JPA后来要对接一个其他系统,然后加了一个数据库,就成了Springboot+JPA+多数据源,但是后面随着业务发现JPA有时候用着太难受,就想着加个Mybatis,然后去网上搜如何整合JPA+Mybatis,但是网上的教程都是单数据源整合的,没有发现多数据源整合的案例。想着之前整合过Mybatis+多数据源,然后就把配置文件复制一份,开始踩坑之路。

目录

目录

一、注意点

二、文件目录

三、application文件和pom文件

 applicatio文件

pom文件

四、配置文件

配置两个数据源

JPA的配置文件,

Mybats的配置文件


 

一、注意点

  1. Springboot和mybatis的版本必须对应,这个很坑,大多数时间都浪费在这里了
  2. application文件的数据源命名
  3. 配置文件的数据源和yml文件一致
  4. 配置文件中 实体类和mapper,xml(注意xml文件的文件后缀是否是.xml)的位置
  5. 回滚操作,必须指名事务管理器
  6. //@Transactional(rollbackFor = OAPMException.class, value = "transactionManagerSecondary")
  7. JPA和mybatis 都有primary源,回滚无法默认主数据源,必须指定

二、文件目录

三、application文件和pom文件

  •  applicatio文件

  • 需要注意的地方就是,数据源命名及各数据源的方言配置

spring:
  jpa:
    hibernate:
      ddl-auto: none
    show-sql: true
    properties:
      hibernate:
        primary-dialect: org.hibernate.dialect.PostgreSQLDialect
        secondary-dialect: org.hibernate.dialect.MySQL5Dialect
        temp:
          use_jdbc_metadata_defaults: false
  #primary
  primary:
    datasource:
      driver-class-name: org.postgresql.Driver
      jdbc-url: jdbc:postgresql://127.0.0.1:5432/xxxx
      username: user
      password: password

      type: com.alibaba.druid.pool.DruidDataSource
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 10000
      timeBetweenEvictionRunMillis: 60000
      minEvictableIdleTimeMillis: 30000
      validationQuery: SELECT 'x'
      testWhileIdle: true
      testOnBorrow: true
      testOnReturn: false
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 10
      filters: stat
  #secondary
  secondary:
    datasource:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://127.0.0.1:3307/bitnami_redmine?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false
      username: bitnami
      password: 928311f90a

      type: com.alibaba.druid.pool.DruidDataSource
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 10000
      timeBetweenEvictionRunMillis: 60000
      minEvictableIdleTimeMillis: 30000
      validationQuery: SELECT 'x'
      testWhileIdle: true
      testOnBorrow: true
      testOnReturn: false
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 10
      filters: stat

  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  mail:
    host: smtp.glorysoft.com
    port: 25
    username: oasystem@glorysoft.com
    password: glory123
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

  main:
    allow:
      bean:
        definition:
          overriding: true

logging:
  config: classpath:config/logback.xml
  level:
    com:
      glory:
        oa:
          pm:
            mapper: debug

pom文件

需要注意的地方就是,Springboot和mybatis的版本必须对应,这个很坑,这个我也不清楚具体的对应版本,只知道我用的这两个是不冲突的。SpringBoot-2.1.12和Mybatis-2.1.1

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值