MyBatis Generator配置

通过阅读 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

这样配置就完成了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。