Spring 动态多数据源

spring springmvc mybatis

多数据源配置时的重点:

1. 注意事务拦截器的配置

Spring中的事务管理与数据源是绑定的,一旦程序执行到Service层(事务管理)的话,由于在进入该层之前事务已经通过拦截器连接数据源,因些在该层切换数据源是不行的。

所以,应该将切点(DataSource)配置在事务的上一层,也就是Controller层。

 

因为使用的是Controller、Service、Dao三层

在Dao层,调用了SqlSession来连接数据库,无法更改,因为是先调用SqlSession,再经过函数的切点。

在Service层,使用了事务。如果在Service层,只能更改第一个操作之后的操作的数据源。

所以切换数据源,只能在Controller层,来做切点。这样,在调用事务时,就会使用修改后的数据源。

2、Oracle授权只读用户

创建一个新的只读用户MYREAD

赋予该只读用户以下角色:connect、resource

添加只读用户对表的SELECT权限,并授权。

只读用户在调用表中的数据时,表前要添加表所有人的名称,使用以下格式

SELECT * FROM OWNER.USERS

posted @ 2015-06-26 11:04  风真天  阅读(176)  评论(0编辑  收藏  举报