最近自己弄了个项目玩,在用mybatis generator进行反向生成的时候发现把其他数据库的表(就是把本地mysql下所有数据库的所有表都生成了)也一起生成进来了(总共生成了1千多张表的实体-_-||)
首先我检查了下配置,发现也没问题,之前都是这个配置的(之前没有这个问题)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="Mysql" targetRuntime="Mybatis3Simple" defaultModelType="flat">
<!-- 指定生成的java文件的编码,没有直接生成到项目时中文可能会乱码 -->
<property name="javaFileEncoding" value="UTF-8" />
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<!-- 生成的mapper中需要继承的父mapper -->
<property name="mappers" value="com.test.blog.dao.BaseMapper"/>
<!-- 是否区分大小写 -->
<property name="caseSensitive" value="false"/>
</plugin>
<!-- 配置model序列化 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/blog-new" driverClass="com.mysql.jdbc.Driver" password="root" userId="root" />
<javaModelGenerator targetPackage="com.test.blog.entity" targetProject=".\src\main\java" />
<sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources" />
<javaClientGenerator targetPackage="com.test.blog.dao" targetProject=".\src\main\java" type="XMLMAPPER" />
<table tableName="%" enableSelectByExample="false" enableDeleteByExample="false"
enableCountByExample="false" enableUpdateByExample="false">
</table>
</context>
</generatorConfiguration>
tableName="%"就是生成该数据库下所有表的意思(其实就是SQL通配符)
最后发现是mysql驱动jar包的问题,我自己电脑装的mysql版本是5.7,然而驱动jar包版本是8.0.13,把驱动jar包换回5(我换的是5.1.47版本)系列的版本就行了。
所以,这里要注意一下,不一定最新的jar包就是好的,最主要的是和自己数据库版本对应