You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MyBatis Generator指定MySQL schema生成表异常求助

解决MyBatis Generator只生成指定schema(booking)数据表的问题

我明白你现在的困扰——明明只想生成booking schema下的表,结果MyBatis Generator(MBG)把所有4个schema的表都生成了。别着急,咱们来调整一下generatorConfig.xml的配置,精准控制生成范围:

1. 配置JDBC连接时锁定目标schema

首先在<jdbcConnection>标签里做两处关键设置,让MySQL驱动聚焦到booking schema,避免扫描其他schema:

<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/booking?useSSL=false&amp;serverTimezone=UTC"
                userId="你的数据库用户名"
                password="你的数据库密码">
    <!-- MySQL驱动专属配置:让MBG只关注当前连接的schema,不遍历所有 -->
    <property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>

我直接把连接URL的默认schema指定为booking,再配合nullCatalogMeansCurrent=true,就能从根源上限定MBG的扫描范围。

2. 精准指定要生成的表

接下来在<table>标签里明确标注schema="booking",双重保障只生成目标schema的表:

<!-- 生成booking schema下的所有表 -->
<table schema="booking" tableName="%" 
       enableCountByExample="false" 
       enableUpdateByExample="false"
       enableDeleteByExample="false"
       enableSelectByExample="false"
       selectByExampleQueryId="false"/>

<!-- 如果只想生成特定表,把tableName改成具体表名即可 -->
<!-- <table schema="booking" tableName="user_reservation" ... /> -->

如果你的配置里之前有不带schema属性的<table>标签(比如直接写<table tableName="%"/>),那MBG就会扫描所有schema的表,一定要补上这个属性。

3. 清理旧生成文件

最后别忘了删除之前MBG生成的所有文件(包括Java实体类、Mapper接口和XML映射文件),不然旧的其他schema文件会残留,让你误以为还是生成了所有表。

按照这几步调整后,MBG就只会生成booking schema下的表啦!

内容的提问来源于stack exchange,提问作者danny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:53:26