mybatis动态表名

编程入门 行业动态 更新时间:2024-10-26 01:21:06

mybatis<a href=https://www.elefans.com/category/jswz/34/1771299.html style=动态表名"/>

mybatis动态表名

1.基于mybatis官方文档

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();dynamicTableNameInnerInterceptor.setTableNameHandler((sql, tableName) -> {// 获取参数方法Map<String, Object> paramMap = RequestDataHelper.getRequestData();paramMap.forEach((k, v) -> System.err.println(k + "----" + v));String year = "_2018";int random = new Random().nextInt(10);if (random % 2 == 1) {year = "_2019";}return tableName + year;});interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);// 3.4.3.2 作废该方式// dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);return interceptor;}
}
/*** 请求参数传递辅助类*/
public class RequestDataHelper {/*** 请求参数存取*/private static final ThreadLocal<Map<String, Object>> REQUEST_DATA = new ThreadLocal<>();/*** 设置请求参数** @param requestData 请求参数 MAP 对象*/public static void setRequestData(Map<String, Object> requestData) {REQUEST_DATA.set(requestData);}/*** 获取请求参数** @param param 请求参数* @return 请求参数 MAP 对象*/public static <T> T getRequestData(String param) {Map<String, Object> dataMap = getRequestData();if (CollectionUtils.isNotEmpty(dataMap)) {return (T) dataMap.get(param);}return null;}/*** 获取请求参数** @return 请求参数 MAP 对象*/public static Map<String, Object> getRequestData() {return REQUEST_DATA.get();}
}

2. 使用参数的方式

@Mapper
public interface LogMapper extends BaseMapper<LogEntity> {List<LogEntity> queryAll(@Param("tableName")String tableName);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis//DTD Mapper 3.0//EN"".dtd">
<mapper namespace="com.zhubayi.dynatable.mapper.LogMapper"><!--namespace:名称空间id:唯一标识resultType:返回值类型${tableName}:从传递过来的参数中取出tableName值--><select id="queryAll" resultType="com.zhubayi.dynatable.entity.LogEntity">select * from ${tableName};</select>
</mapper>

更多推荐

mybatis动态表名

本文发布于:2023-11-16 19:58:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1634269.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动态   mybatis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!