MyBatis 拦截器获取当前数据源 - 详细教程
如何在 MyBatis 拦截器中获取当前数据源
在 MyBatis 中,拦截器(Interceptor)可以拦截 SQL 语句的执行。如果您需要在拦截器中获取当前数据源,可以使用以下代码:
// 获取当前执行的 SQL 会话
Invocation invocation = (Invocation) invocation.getTarget();
SqlSession sqlSession = (SqlSession) invocation.getArgs()[0];
// 获取当前数据源
DataSource dataSource = sqlSession.getConfiguration().getEnvironment().getDataSource();
代码说明:
invocation.getTarget()方法获取当前执行的 SQL 会话。invocation.getArgs()[0]获取当前执行的 SQL 语句所对应的SqlSession对象。sqlSession.getConfiguration().getEnvironment().getDataSource()方法获取当前数据源。
注意:
invocation对象是Interceptor的核心方法intercept()的参数之一,需要在方法执行时进行传入。
通过以上代码,您可以在 MyBatis 拦截器中获取当前数据源,并将其用于自定义操作,例如连接池管理或数据库切换。
原文地址: https://www.cveoy.top/t/topic/lfwI 著作权归作者所有。请勿转载和采集!