动态指定数据库表名前缀(MyBatis)
🏷️ MyBatis
MyBatis 中可以通过全局的表前缀(table prefix)实现一定程度的动态指定表名。
假如表名为 t_xx_game ,对应 entity 的注解如下:
java
@TableName("t_xx_game")
1
通过设置 mybatis-plus.global-config.db-config.table-prefix 属性可以指定一个全局的表前缀:
yaml
mybatis-plus:
global-config:
db-config:
table-prefix: t_xx_
1
2
3
4
2
3
4
指定表前缀后,entity 的注解可以修改为如下形式:
java
@TableName(value = "game", keepGlobalPrefix = true)
1
如此一来,不同的 application 可以重复的使用相同的 entity 来访问不同的表。
有些不太方便的是,只能指定一个表前缀,而且是固定值。由于一般表名使用 t_ 开头,视图使用 v_ 开头,这就导致无法使用同一个 table prefix 。另外如果有多个不同的表前缀的话,也不大方便使用。