-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
多数据源如何配置 #138
Comments
不需要配置,自动识别 |
我这不识别request.getResult()返回为空 |
PagingRequest request = new PagingRequest() |
你好,最近使用springboot+dynamic适配多数据源,但是SQLHelper好像并不支持多数据源呢。拼接分页sql语句的处理是Dialect的LimitHandler类,但是这个类是根据org.apache.ibatis.session.Configuration类的databaseId获取的,问题就在于databaseId在项目启动的时候会初始化,dynamic配置了多个数据源,默认取第一个配置的当做databaseId(问题概括,dynamic配置两个数据源,第一个是mysql,第二个是oracle。使用startPage时,全是按照第一个配置的数据源mysql的语法进行处理)。请问下,这个问题怎么处理呢? |
我想的配置多数据源,其实就是创建多个sqlsessionfactory,每个sqlsession factory里对应一个configuration,自然就对应一个sqlhelper插件实例了。 你说的dynamic是mybatis-plus里提供的吗,如果是的话,我给研究一下,看看怎么配置。 |
您好,是dynamic-datasource-spring-boot-starter这个依赖提供的多数据源配置
…------------------ 原始邮件 ------------------
发件人: "fangjinuo/sqlhelper" <notifications@github.com>;
发送时间: 2020年10月22日(星期四) 上午6:53
收件人: "fangjinuo/sqlhelper"<sqlhelper@noreply.github.com>;
抄送: "身高一米八"<907172835@qq.com>;"Comment"<comment@noreply.github.com>;
主题: Re: [fangjinuo/sqlhelper] 多数据源如何配置 (#138)
我想的配置多数据源,其实就是创建多个sqlsessionfactory,每个session factory里对应一个condiguration,自然就对应一个sqlhelper插件实例了。
你说的dynamic是mybatis-plus里提供的吗,如果是的话,我给研究一下,看看怎么配置。
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
项目用的mybatis是tk.mybatis,后续会集成为mybatis-plus
…------------------ 原始邮件 ------------------
发件人: "fangjinuo/sqlhelper" <notifications@github.com>;
发送时间: 2020年10月22日(星期四) 上午6:53
收件人: "fangjinuo/sqlhelper"<sqlhelper@noreply.github.com>;
抄送: "身高一米八"<907172835@qq.com>;"Comment"<comment@noreply.github.com>;
主题: Re: [fangjinuo/sqlhelper] 多数据源如何配置 (#138)
我想的配置多数据源,其实就是创建多个sqlsessionfactory,每个session factory里对应一个condiguration,自然就对应一个sqlhelper插件实例了。
你说的dynamic是mybatis-plus里提供的吗,如果是的话,我给研究一下,看看怎么配置。
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
昨晚加了一个参数,来控制是否从org.apache.ibatis.session.Configuration类的databaseId获取 你可以再测试一下, 如果你有现成的多数据源的测试用例,可以放到 sqlhelper-examples 下,3q |
我理解的,那我在configuration上加了开关后,确保不走configuration的方式获取,也就是走最后的方式,应该没有问题吧。因为最后的方式就是从真实的数据源获取的。 |
最后的方式是连接数据源呀,虽然可以但是性能方面肯定不友好呀,相当于每次查询数据库之前,多连接一次数据库呀。
现在我本地代码的处理方式是覆盖了你的MybatisUtils方法的getDatabaseId方法,具体如代码所示:
![image](https://user-images.githubusercontent.com/47849395/97004537-ca07e400-156f-11eb-8fb8-0fb63a1b7d68.png)
入参MappedStatement ms其实是可以获取到dynamic配置的多数据源信息的。
大佬你看SQLHelper框架能优化下嘛。
|
不会多连接的,如果每次都多连接一次,还要连接池有什么意义呢?你可以看到TX. getconnection的实现都是没有connection情况下才会去创建 @Override
public Connection getConnection() throws SQLException {
if (connection == null) {
openConnection();
}
return connection;
} 另外你的方案我也看了,你的方案是针对 mybatis-plus 的dynamic-datasource 实现的。如果是用在 mybatis-plus上是肯定没有问题的,是个不错的想法。 |
嗯嗯,好的,受教了。当时没往连接池这块想,TX.getConnection也没看过源码,这就去看
|
虽然他们开发的 dynamic-datasource 工具比较好用,但是有一种情况处理不了。
解决方案:
|
sqlhelper 提供了多数据源配置方案,如有需要,可以试用。升级到 3.4.3 后即可试用。 项目的 .wiki 目录下,有相关的教程 |
No description provided.
The text was updated successfully, but these errors were encountered: