springBoot配置Mybatis-generator
在后端开发中,写sql语句是非常繁琐而且容易出错的的事情,特别是当数据库中的表数据项比较多时。此时使用sql语句自动生成器就非常不错。
以下是我在springBoot工程中配置mybatis-generator的过程,写下来供自己以后回顾和新手参考。
- pom.xml中加入插件(注:加入这个插件之前这个工程也是可以使用mybatis的,具体配置过程可参考网上其他教程)
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
</configuration>
</plugin>
2.application.yml
mybatis:
type-aliases-package: com.tg.parkmana.domain
mapper-locations: classpath:mybatis/*.xml
3、加入generatorConfig.xml,
<?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>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<classPathEntry location="C:\Users\user\IDEA-workspace\cloud-mysql-connector-java-5.1.7-bin.jar"/>
<context id="MysqlTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释true:是: false:否 -->
<property name = "suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.16.1.82:3306/tg_parking"
userId="root"
password="tgjf_haolepay_admin">
</jdbcConnection>
<!--非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.tg.parkmana.domain" targetProject="src/main/java">
<!--是否让schema作为包的后缀-->
<property name="enableSubPackages" value="true"/>
<!--从数据库返回的值被清理前后的空格-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="com.tg.parkmana.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- 生成myBatis对应接口位置-->
<javaClientGenerator type ="XMLMAPPER" targetPackage="com.tg.parkmana.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true "/>
</javaClientGenerator>
<!-- 要生成的表tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table schema="tg_parking" tableName = "tg_park_user_info"
domainObjectName="User">
<ignoreColumn column="created_date" delimitedColumnName="true" />
<ignoreColumn column="updated_date" delimitedColumnName="true" />
</table>
</context>
</generatorConfiguration>
我的代码结构如下图
此时在EditConfiguration中选择maven,如下图配置
配置完成后点击运行这个generator.
会在domain中生成相应的类,每运行一次generator,会生成两个类,一个是自己配置,一个是相应的example类,可以通过配置使其不生成example类,但是因为我需要做灵活的多条件查询等,所以默认生成了example类。在dao文件中生成mapper的接口文件和xml文件。因为springboot不能扫描不在resource中的xml文件(好像是这个原因,也可能不是,欢迎指正,不欢迎乱喷),所以需要将mapper.xml文件如上面的工程结构图中那样移到resources文件夹下。
此时,就可以使用自动生成的mapper接口的example类了。