前言
在进行一个模拟权限系统搭建过程种使用generator 进行自动化生成数据库种对应的bean与mapper文件时出现的问题。
mybaits-generator
mybatis-generator是官方提供的逆向工程工具,以针对数据库表自动生成MyBatis执行所需要的代码,是一个非常人性的自动化工具。
问题
如图所示:
从图中的报错提示看出,当前连接的数据库中不存在pms_brand表的存在。因为当前的generator文件的配置文件是在网上进行复制过来没有对表的引入部分进行修改,所以显示当前数据库种不存在该表。
正确方式
现象
文件代码
<?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>
<properties resource="generator.properties"/>
<context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 为模型生成序列化方法-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- 为生成的Java模型创建一个toString方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
<!--可以自定义生成model的代码注释-->
<commentGenerator type="com.prospect.mes.mbg.CommentGenerator">
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
<property name="suppressDate" value="true"/>
<property name="addRemarkComments" value="true"/>
</commentGenerator>
<!--配置数据库连接-->
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.connectionURL}"
userId="${jdbc.userId}"
password="${jdbc.password}">
<!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>
<!--指定生成model的路径-->
<javaModelGenerator targetPackage="com.prospect.mes.mbg.model" targetProject="F:\ideaworkspace\prospecthillmes\src\main\java\"/>
<!--指定生成mapper.xml的路径-->
<sqlMapGenerator targetPackage="mapper" targetProject="F:\ideaworkspace\prospecthillmes\src\main\resources\"/>
<!--指定生成mapper接口的的路径-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.prospect.mes.mbg.mapper"
targetProject="F:\ideaworkspace\prospecthillmes\src\main\java\"/>
<!--生成全部表tableName设为%-->
<table tableName="mes_action_log">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
注意
生成文件的路径使用的是绝对路径,为了防止报无法找到对应的目录的错误
<!--指定生成model的路径-->
<javaModelGenerator targetPackage="com.prospect.mes.mbg.model" targetProject="F:\ideaworkspace\prospecthillmes\src\main\java\"/>
<!--指定生成mapper.xml的路径-->
<sqlMapGenerator targetPackage="mapper" targetProject="F:\ideaworkspace\prospecthillmes\src\main\resources\"/>
<!--指定生成mapper接口的的路径-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.prospect.mes.mbg.mapper"
targetProject="F:\ideaworkspace\prospecthillmes\src\main\java\"/>