springboot整合mybatis进行跨库查询
业务场景:
当一个公司大了之后就会将各种业务进行分开,最简单的就是例如:公司的机构表,那么就会将他们分成开来,那么就会在一个实例中,
如果要获取相关信息就会去关联这张表进行关联查询
从而导致了跨库关联多表查询:
首先看sql:
select
f.id as id,
m.name as name
from fr_db.person f left join mall.person_test m
on f.id =m.pid
where f.id = #{id,jdbcType=INTEGER} select f.id as id, m.name as name from fr_db.person f left join mall.person_test m on f.id =m.pid where f.id = #{id,jdbcType=INTEGER}
这个是在mybatis.xml文件的进行的,可以看到我是从一个实例中进行查询的,
数据库一 fr_db 数据库二: mall表:
这个只是一个测试案例,没有按照公司的表进行分离,
可以看到上面是两个库,所以就可以知道,是进行跨库查询
可以看到我yml文件配置:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url : jdbc:mysql://127.0.0.1:3306/fr_db?zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true&characterEncoding=utf-8
password: 1234
username: root
#mybatis
mybatis:
type-aliases-package: com.cxy.dataObject #实体类映射文件包
mapper-locations: classpath:mapping/*.xml #生成的sql语句
server:
port: 8082 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url : jdbc:mysql://127.0.0.1:3306/fr_db?zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true&characterEncoding=utf-8 password: 1234 username: root #mybatis mybatis: type-aliases-package: com.cxy.dataObject #实体类映射文件包 mapper-locations: classpath:mapping/*.xml #生成的sql语句 server: port: 8082
再进行测试:
可以看到相关内容
name是mall库中的name:
可以看到name为a,
可以看到person表中name并不是为a,所以就可以进行
业务场景: 当一个公司大了之后就会将各种业务进行分开,最简单的就是例如:公司的机构表,那么就会将他们分成开来,那么就会在一个实例中, 如果要获取相关信息就会去关联这张表进行关联查询 从而导致了跨库关联多表查询: 首先看sql: select f.id as id, m.name as name from fr_db.person f left join mall.person_test m on f.id =m.pid where f.id = #{id,jdbcType=INTEGER} 这个是在mybatis.xml文件的进行的,可以看到我是从一个实例中进行查询的, 数据库一 fr_db 数据库二: mall表: 这个只是一个测试案例,没有按照公司的表进行分离, 可以看到上面是两个库,所以就可以知道,是进行跨库查询 可以看到我yml文件配置: spring: datasource: driver-class-name: com.mysql.jdbc.Driver url : jdbc:mysql://127.0.0.1:3306/fr_db?zeroDateTimeBehavior=convertToNull&autoReconnect=true&useUnicode=true&characterEncoding=utf-8 password: 1234 username: root #mybatis mybatis: type-aliases-package: com.cxy.dataObject #实体类映射文件包 mapper-locations: classpath:mapping/*.xml #生成的sql语句 server: port: 8082 再进行测试: 可以看到相关内容 name是mall库中的name: 可以看到name为a, 可以看到person表中name并不是为a,所以就可以进行