mybatis能否同时操作两个数据源

数据源都是属于MySQL服务器,需要做到两个数据源中的两个表连接查询,在MySQL中直接用 . 可以查询,但是mybatis不认,怎么样才能同时操作两个数据源

mybatis不能同时查询两个数据源里的表吧,mysql同时查询要加模式名,即数据库的名字吧,这个在mybatis里应该是不能实现的

1.db.properties配置文件设置

driver:com.mysql.jdbc.Driver
f_url:jdbc:mysql://**:3306/**?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
s_url:jdbc:mysql://**:3306/**?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
user:**
pwd:**

2.mybatis配置文件设置


value="#{jdbc.driver}"/>
value="#{jdbc.f_url}"/>
value="#{jdbc.user}"/>
value="#{jdbc.pwd}"/>


value="#{jdbc.driver}"/>
value="#{jdbc.s_url}"/>
value="#{jdbc.user}"/>
value="#{jdbc.pwd}"/>








注:定义2个MapperScannerConfigurer 时要保证两个映射dao接口不能处于同一个包下。不然会发生找不到第二个dao接口方法异常







3.mapper配置文件设置
数据源1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"

"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">


insert into
trans_receive
(
**
)
values
(
**
)

数据源2
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"

"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">


select * from
**
where
**

注:带**需要自行修改

用mycat应该是可以的,你可以试试

你可以看看我码云里的JDBS配置方案,理论上数据源可以从Hibernate切换过去的。