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&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
相关产品推荐
相关产品推荐

