一、什么是MyBatis Generator?
MyBatis Generator是一个可以用来生成Mybatis dao,entity,Mapper文件的一个工具,在项目的过程中可以省去很多重复的工作,我们只要在MyBatis Generator的配置文件中配置好要生成的表名与包名,然后运行一条命令就会生成一堆文件。
为什么要使用MyBatis Generator?
在使用MyBatis时,当表还比较少时,我们可以手写与表操作相对应的dao、entity、mapper,但是随着表越来越多,手写重复的代码就显得有点浪费时间了,所以就是用MyBatis官方提供的插件MyBatis Generator来帮我们自动生成文件、代码。
关于如何使用MyBatis Generator,可以参考官方文档。在这里我主要讲一下自己在使用这个插件时遇到的一些坑。
使用MyBatis Generator时遇到了哪些坑?
1、在maven中引入MyBatis Generator插件时,maven中始终无法显示该插件
当时pom.xml文件中插件位置是这样子的:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<!-- MyBatis Generator插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
复制代码
这种情况下,MyBatis Generator插件始终无法在Maven中显示出来。解决方式:把MyBatis Generator放到跟pluginManagement同级别下就可以了。 代码如下:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
</plugins>
</pluginManagement>
<!-- mybatis generator插件, 注意不能放在pluginManagement里面,要跟它同级别 -->
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
复制代码
2、在IDEA中创建generatorConfig.xml文件时,文件头报错:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
所以我们直接选择Fetch external resource
就行了,如果不行,就选第二个Ignore external resource
,我就是通过第二种方式解决的!
不过可能有的小伙伴会问,第三个选项呢?我没试过,我也不知道。-_-
3、mybatis-generator-maven-plugin:1.3.4:generate failed: Exception getting JDBC Driver
当配置文件的准备工作都做完后,开始运行插件时,心里祈祷要一切顺利呀,结果:我擦,还是报错了!
通过错误提示信息我们就知道,找不到JDBC的驱动包,此时有两个解决方式:
(1)在plugin文件中单独配置MySQL的驱动包
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!-- 在plugin中单独依赖MySQL驱动包,解决找不到JDBC Driver的问题 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
</dependencies>
</plugin>
复制代码
(2) 在generatorConfig.xml中设置驱动包的location
<classPathEntry location="驱动包文件位置"/>
复制代码
结束语:其实很多问题在发生的时候,IDE就已经在控制台给了我们提示,所以当我们遇到问题时,不要慌,认真看异常提示,耐心一点,问题总会被解决的!解决不了,还有Google呢。^_^