怎么能够支持多公司使用一个系统

这个系统现在是就一个公司使用但是现在分公司也要使用这个系统有什么方法能用一个系统不同的数据库实现吗,另外我知道可以动态数据源但是我有一个疑问就是在全部都是单线程的情况下,总公司分公司同时有人进行操作是不是就会不断的来回切换会不会造成卡顿

还有一个问题就是我现在系统其实是一个动态数据源的只不过一个公司的时候就是需要另一个数据库数据了切换一下,用的查询方法的名称也是不同的,但是现在就是我同一个方法要根据人员的所属公司不同切换默认数据源,就等于说同样的mapper.xml的方法因为这个人所在的公司不同而切换成不同的数据库

分公司使用 多加几个账号,然后账号加个公司的权限,总公司就操作总公司的数据,分公司就操作分公司数据?你的并发量,操作账户又有多少呢,不高的话一般并不会影响效率

来来,看看我的博客,动态数据源切换。能实现你的。
https://caozhen.blog.csdn.net/article/details/128468935?spm=1001.2014.3001.5502

建议改成一个数据库,不同分公司,不同角色,不同的数据访问权限。
或者改成多个数据源,统一接口调用。根据不同的人员角色,不同的业务,传递不同的参数,调用不同的数据,中间处理调用的过程写成统一的api接口。
切数据源的方法,万一需要用到的分公司越来越多,怎么办,要切换很多个数据源。
个人见解。如有帮助,请采纳!!!

java web项目都是支持多线程的,我很好奇你为啥说你们的系统是单线程的。

如果仅仅是为了区分不同公司,完全没有必要一个公司一个数据源,完全可以再设计表的时候添加公司ID字段来加以区分。而且看你都可以用同一个mapper.xml说明表结构应该是一样的吧。

配置的话,也可以使用数据库配置,通过公司ID区分不同公司这个配置应该是啥。

对于多公司使用同一系统的情况,一种常用的解决方法是使用多数据源。您可以为每个公司配置一个数据源,并在程序中根据用户所属公司动态切换数据源。这样可以确保每个公司的数据独立,避免数据冲突。
动态数据源可以通过类似于数据源池的方式来实现。这样可以保证在多线程环境下,每个线程都有自己的数据源,避免多个线程共享同一数据源造成的卡顿问题。
对于您提到的方法名称不同的问题,可以通过在程序中动态设置方法名称来解决。例如,您可以在程序中定义一个全局变量来存储默认数据源对应的方法名称,然后在调用方法时使用这个变量来动态设置方法名称。
总之,实现多公司使用同一系统的方案需要根据具体情况进行设计和实现,建议您可以先把您的系统具体情况和需求详细说明,再考虑具体的解答