我们在实际的开发过程中可能会或多或少的访问多个数据源,比如笔者开发的时候是采用mybatis+mysql,此时有两个比较好的方法跨数据源访问存储过程。
1、基于mybaitis这个持久性框架的特性,高一点的版本提供了多数据源的访问,可以利用面向切面编程思想来自由切换数据源,具体的配置可以参考,多数据源的配置。访问存储过程像一般访问即可。
如
<!-- 利用存储过程批量插入数据 -->
<select id="addxxxByProcedure" parameterType="java.util.Map"
statementType="CALLABLE" >
{CALL test_db.insertBatchCoupon(
#{v_pid,jdbcType=VARCHAR,mode=IN},
#{v_eid,jdbcType=VARCHAR,mode=IN},
#{v_uid,jdbcType=VARCHAR,mode=IN},
#{v_start,jdbcType=INTEGER,mode=IN},
#{v_pos,jdbcType=INTEGER,mode=IN})
}
</select>
xml配置
// 注解型存储过程
@Select("CALL test_db.insertxxx(#{v_eid},#{v_pid},#{v_uid},#{v_start}, #{v_pos})")