慕粉4385183
2020-06-01 14:57
老师 ,想请问下如果很多人都在用某个系统的时候,10个请求去查user_2001表,10个请求去查user_2002表,10个请求去查user_2003表 ...等等
按照老师配的这种
public static ThreadLocal<String> myTableName=new ThreadLocal<String>(); MybatisPlusConfig.myTableName.set("user_2001");
以 threadlocal设置每个请求的想去访问的动态表 这样子就算用户请求有很多,也能准确查询出每个用户想要查看的表是吗。
如果是web项目,可以这样写,但是别忘了,在使用结束时,要清空ThreadLocal变量,防止被线程池重用。web处理请求时,只要没处理完,当前处理请求的当前线程就不会释放,不会乱掉的。
还有一个处理办法,将动态表名放到request对象中也可以,然后再从request中取。
+1~
MyBatis-Plus进阶
23296 学习 · 118 问题
相似问题