前提:使用idea开发,基于springboot、用到了mybatis的逆向工程
因为之前用eclipse开发ssm比较多,现在转idea 使用springboot 踩了一些坑,在这记录一下~
注意事项:idea默认打包不会打包src下的xml文件,但是会打包resources底下的xml。所以想省事的话可以直接把mapper.xml放到resources底下。
(然而想打成jar包,依旧不会打resources文件夹,建议都手动配置)
该篇选择将xml放在src底下!
1、pom.xml 这里使用插件来启动逆向工程(将mapper.xml放在resources底下的话 就不用配置下方的resources)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--mybatis逆向工程插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<!-- 是否覆盖,true表示会替换生成的JAVA文件,false则不覆盖 -->
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
</dependencies>
</plugin>
</plugins>
<resources>
<!-- mapper.xml文件在java目录下 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
2、generatorConfig.xml,这里的逆向工程配置文件我使用的是默认名字,如果不想用这个名字 可以在pom.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>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/sina?characterEncoding=utf8" userId="root" password="123456"></jdbcConnection>
<!-- 默认false,把jdbc decimal 和numeric类型解析为Integer,为true时把jdbc decimal numeric类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- targetProject用于生成bean类的位置,其实就是表对应的类-->
<javaModelGenerator targetPackage="com.sina.bean" targetProject="./src/main/java">
<!-- enableSubPackages配置是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- targetProject配置mapper映射文件生成位置,设置成跟接口同一个包下-->
<sqlMapGenerator targetPackage="com.sina.dao" targetProject="./src/main/java">
<!-- enableSubPackages配置是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage配置mapper接口的位置 -->
<javaClientGenerator targetPackage="com.sina.dao" type="XMLMAPPER" targetProject="./src/main/java">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="task_detail"></table>
<table tableName="task_list"></table>
<table tableName="user"></table>
<table tableName="sina_account"></table>
</context>
</generatorConfiguration>