在mybatis plus 3.4版本之前,动态表名处理器接口是ITableNameHandler, 需要配合mybatis plus分页插件一起使用才能生效。我们这里只介绍3.4版本之后的实现方式。 在mybatis plus 3.4.3.2 作废该的方式:dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map); 大家如果见到这种方式实现的动态表名,也是过时的实现方...
@Value("${table.nameprefix}")privateString namePrefix; @Value("${table.time}")privateString tableTime;//表名组装,先读取配置文件日期,如日期已配置,则组装表名返回//如日期未配置,读取本地时间,格式化yyyyMMdd后拼接前缀,最终结构:tableName_yyyyMMdd//调用后将表名返回publicString getSystemctlTime() { ...
}//拦截器,获取到表名给替换@BeanpublicMybatisPlusInterceptordynamicTableNameInnerInterceptor() {MybatisPlusInterceptorinterceptor =newMybatisPlusInterceptor();DynamicTableNameInnerInterceptordynamicTableNameInnerInterceptor =newDynamicTableNameInnerInterceptor(); dynamicTableNameInnerInterceptor.setTableNameHandler((sq...
map.put("my_test", (sql, tableName) -> DynamicTableTreadLocal.INSTANCE.getTableName()); // 如果存在多张分表,则在下面添加多条记录 dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map); mybatisPlusInterceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor); ...
A[定义 Mapper 接口] --> B[使用 @TableName 注解] B --> C[实现动态 SQL] C --> D[调用 Mapper 接口] D --> E[获取数据] 结语 通过本文的介绍,你应该对如何在 MyBatis Plus 中使用动态表名有了基本的了解。动态表名可以提高代码的灵活性和可维护性,是值得在实际项目中尝试的一种技术。希望本文...
在mybatis plus 3.4版本之前,动态表名处理器接口是ITableNameHandler, 需要配合mybatis plus分页插件一起使用才能生效。我们这里只介绍3.4版本之后的实现方式。 在mybatis plus 3.4.3.2 作废该的方式:dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map); 大家如果见到这种方式实现的动态表名,也是过时的实现方...
在执行SQL语句之前,MyBatis-Plus会对动态表名进行解析。它会根据实体类中被注解的字段的值来确定要操作的数据库表名。解析过程是在MyBatis的执行器中进行的。 2.3动态表名的替换规则 MyBatis-Plus使用占位符的方式来替换动态表名。在SQL语句中,可以使用#{tableName}的形式来表示动态表名,MyBatis-Plus会将其替换...
@TableName注解作为MyBatis Plus提供的重要特性,简化了实体类与数据库表之间的映射关系。无论是基本的表名映射,还是更高级的动态表名需求,@TableName注解都能够满足各种情况下的需求。通过合理使用这一注解,开发者能够在持久层开发中更加专注于业务逻辑,提升开发效率和代码质量。
1 打开官网 官网地址:https://baomidou.com/搜索 “动态表名” 2 会看见动态表名插件,进入示例会看见源码 根据自己的需求实现就好,不过得注意一点在配置mybatis时,一定要将DynamicTableNameInnerInterceptor添加进MybatisPlusInterceptor放到分页插件之前,不然select ...