如何使用jOOQ移除类名中的表名前缀?
jOOQ代码生成移除表名前缀的配置方案
要移除表名的特定前缀(比如t_user生成User而非TUser),可以通过jOOQ代码生成器的matchers配置,结合正则表达式捕获组实现前缀移除,具体XML配置如下:
<configuration> <generator> <strategy> <matchers> <tables> <table> <!-- 可选:保持数据库表标识符的格式(按需调整) --> <tableIdentifier> <transform>UPPER</transform> </tableIdentifier> <!-- 核心配置:移除T_前缀并生成驼峰类名 --> <tableClass> <transform>PASCAL</transform> <!-- 正则匹配以T_开头的表名,捕获后续内容作为类名基础 --> <expression>^T_(.*)$</expression> </tableClass> </table> </tables> </matchers> </strategy> </generator> </configuration>
配置说明
<transform>PASCAL</transform>:将捕获到的表名部分转换为帕斯卡命名法(首字母大写的驼峰式),比如user会变成User。<expression>^T_(.*)$</expression>:正则表达式的作用是匹配以T_开头的表名,(.*)会捕获前缀之后的所有内容,jOOQ会用这部分捕获内容生成类名。
扩展适配
- 如果表名前缀是小写的
t_,将正则改为^t_(.*)$即可;若需要忽略大小写匹配,使用(?i)^t_(.*)$。 - 若需移除多个前缀(比如
T_、TB_),可以修改正则为^(T_|TB_)(.*)$,同样会捕获前缀后的内容生成类名。
内容的提问来源于stack exchange,提问作者殿统仁
相关产品推荐
相关产品推荐

