前提:使用idea开发,基于springboot、用到了mybatis的逆向工程java
由于以前用eclipse开发ssm比较多,如今转idea 使用springboot 踩了一些坑,在这记录一下~mysql
注意事项:idea默认打包不会打包src下的xml文件,可是会打包resources底下的xml。因此想省事的话能够直接把mapper.xml放到resources底下。spring
(然而想打成jar包,依旧不会打resources文件夹,建议都手动配置)sql
该篇选择将xml放在src底下!数据库
一、pom.xml 这里使用插件来启动逆向工程(将mapper.xml放在resources底下的话 就不用配置下方的resources)springboot
<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>
二、generatorConfig.xml,这里的逆向工程配置文件我使用的是默认名字,若是不想用这个名字 能够在pom.xml中配置。mybatis
<?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>
三、使用插件生成mapper和beanapp
四、application.propertieseclipse
#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
五、启动类,加上@MapperScanmaven
@SpringBootApplication @ComponentScan("com.sina") @MapperScan("com.sina.dao")//扫描持久层的包,造代理 public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }