前提:使用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>
3、使用插件生成mapper和bean

4、application.properties
#driver
spring.datasource.driverClassName=com.mysql.jdbc.Driver #url spring.datasource.url=jdbc:mysql://localhost:3306/sina?characterEncoding=utf-8 #name spring.datasource.username=root #password spring.datasource.password=123456 #pool spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #alias mybatis.type-aliases-package=com.sina.bean #log logging.level.com.sina.dao=debug
5、啟動類,加上@MapperScan
@SpringBootApplication
@ComponentScan("com.sina")
@MapperScan("com.sina.dao")//掃描持久層的包,造代理
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
