关于springboot +mybatis 使用多线程的问题,求助

测试是通过的。没有报错。但是mapper的查询和更新方法就是不会执行。

大致的流程就是写了个分页,开多个线程,同时处理数据,每个线程处理一段数据,调用mapper方法之前。都能正确执行,到了查询的那行代码后面就好像不执行了。。。。然后,用多实例注解后openSesson().getMapper()好像也没用。不知道怎么回事。。。。

MySQL进程阻塞了?

mybatis对查询的语句会存在一级缓存中,如果在一个事务中,mybatis对同一个session多次查询同一个sql语句就会去找缓存而不是再去查一次数据库,哪怕你的参数不同,可以试一下在sql语句标签中加上flushCache="true",如<select flushCache="true"...,这样就不会存在一级缓存中了。

你框架搭的有问题吧,同个方法调用多次增删改查没问题,java web服务本来就是多线程的   所以和线程应该也没啥关系

还是说你一个mapper方法对应了多个操作?mapper的方法只能对应一个操作

用线程时要注意session、鉴权信息、cookie获取数据可能有问题,要在网上找对应的解决方法,我之前是线程里调用保存,会获取当前用户作为creator_id,默认的线程拿不到调用线程时的那个用户的登录信息

后来。把查询和更新等数据库相关操作都提取出来单独处理后好像才可以正常运行。。。就是不知道为啥。。不知道有没有大佬能说一下猜想