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