Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.1k views
in Technique[技术] by (71.8m points)

请教各位,关于数据查询的问题,我应该怎样实现这个需求?

1、当前业务数据库的数量是不确定的,确定的是所有业务数据库是放在同一台服务器,而且数据库名称是有规律的,里面的表也都是一样的,只是数据不同,有一个公共数据库里的一张表记录这些业务数据库的名称。
2、前端通过接口获取业务数据库名称列表,登录时可以选择不同业务数据库进行登录。
3、后端跟据前端提交过来选择哪个数据库,然后查找对应业务数据库的信息。

问题:后端用mybatis-plus查询数据,因为业务数据库的数量是不确定的,所以无办法提前配置好数据源,那么怎样跟据提交过来的业务数据库名称来查找对应数据库的数据?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

spring爸爸早就考虑到这个问题了,defaultTargetDataSource就是你的公共库,
targetDataSources就是所有的业务库,AbstractRoutingDataSource这个抽象类,只要你重写determineCurrentLookupKey这个方法即可(其实就是生成targetDataSources 这个map的key,方便找到真实的数据源);

完美搞定从数据库读取数据源的问题
image.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...