通过阅读 MyBatis Generator官网了解到 ,如果需要使用MyBatis Generator
,需要在pom.xml
文件中加入插件
<project ...>
...
<build>
...
<plugins>
...
<plugin>
<groupId> org.mybatis.generator </groupId>
<artifactId> mybatis-generator-maven-plugin </artifactId>
<version> 1.3.7 </version>
</plugin>
...
</plugins>
...
</build>
...
</project>
这个插件类路径非常有限 - 它只包含MyBatis生成器本身。如果需要在插件的类路径中添加一些内容(例如,JDBC驱动程序),可以通过向插件配置添加依赖项来实现
我这里使用的是h2数据库,所以在version
下面将h2数据库的依赖添加进来
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
</dependency>
</dependencies>
</plugin>
</plugins>
通过官网得知xml文件的默认值
XML配置文件的位置
默认值:${basedir}/src/main/resources/generatorConfig.xml
在resources
下创建一个generatorConfig.xml
MyBatis Generator官网上有xml配置参考,将配置参考复制到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="/Program Files/IBM/SQLLIB/java/db2java.zip" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
connectionURL="jdbc:db2:TEST"
userId="db2admin"
password="db2admin">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="test.model" targetProject="\MBGTestProject\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="test.xml" targetProject="\MBGTestProject\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="\MBGTestProject\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
<property name="useActualColumnNames" value="true"/>
<generatedKey column="ID" sqlStatement="DB2" identity="true" />
<columnOverride column="DATE_FIELD" property="startDate" />
<ignoreColumn column="FRED" />
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
</table>
</context>
</generatorConfiguration>
如果出现http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd 标红,左边有红色小灯泡,点击Fetch external resource即可解决
依据项目修改好之后的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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="org.h2.Driver"
connectionURL="jdbc:h2:~/community"
userId="sa"
password="123">
</jdbcConnection>
<!--为true时将数据库的decimal和numeric自动转换成Java的BigDecimal-->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="life.tw.community.model" targetProject="src/main/java">
<!--为true会依据项目路径生成子包-->
<property name="enableSubPackages" value="true" />
<!--为true会对数据库返回的字符字段进行trim操作-->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="life.tw.community.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="user" domainObjectName="User" >
</table>
</context>
</generatorConfiguration>
然后运行 MyBatis Generator官网上提供的语句
mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
会自动去寻找generatorConfig.xml
,去做一些自动化的生成
通过查阅MyBatis官网得知:
有三种不同的方法让MyBatis-Spring扫描类路径:
使用<mybatis:scan />元素。
使用注解@MapperScan
使用Spring xml文件并注册MapperScannerConfigurer
这里我就使用注解@MapperScan
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("life.tw.community.mapper")
public class CommunityApplication {
public static void main(String[] args) {
SpringApplication.run(CommunityApplication.class, args);
}
}
然后需要在application.properties
里配置mybatis.type-aliases-package
和
mybatis.mapper-locations
#用于搜索类型别名的包
mybatis.type-aliases-package=life.tw.community.model
#Mapper xml配置文件的位置
mybatis.mapper-locations=classpath:mapper/*.xml
这样配置就完成了。