mybatis-generator + tkmybatis 导入数据库model,mapper和对应的XML文件

还记得当初最开始创建数据库那一系列的东西时,创建model对象,从已有的项目中copyxml文件,然后对应着自己的数据库修改映射关系,在mapper(interface)中添加方法,在对应的xml里面手写sql语句。

如果一个项目中的table比较少的话,工作量还不是很大,但当DB中的table特别多的时候,这么做无疑是一个很大的工作量。

现在随着各种插件及工具包的发展,衍生出一套mybatis-generator + tkmybatis的自动生成工具。

接下来就细看详细过程:

1.在pom文件中添加必要的依赖和插件

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.43</version>
</dependency>
<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>2.0.3</version>
</dependency>
<plugin>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-maven-plugin</artifactId>
   <dependencies>
      <dependency>
         <groupId>tk.mybatis</groupId>
         <artifactId>mapper</artifactId>
         <version>3.5.0</version>
      </dependency>
   </dependencies>
   <version>1.3.5</version>
   <executions>
      <execution>
         <id>Generate MyBatis Artifacts</id>
         <phase>none</phase>
         <goals>
            <goal>generate</goal>
         </goals>
      </execution>
   </executions>
</plugin>
2.自定义创建接口,并实现Mapper<T>,MySqlMapper<T>
如下所示:
public interface CommonMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
这样既可
3.在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>
    <!--导入属性配置 -->
    <!--<properties resource="generator.properties"></properties>-->

    <!--指定特定数据库的jdbc驱动jar包的位置 -->
    <classPathEntry
            location="说明(自己本地的目录,盘符冒号之后是//,剩下其他都是/)    /mysql-connector-java-5.1.45.jar"/>

    <context id="MySql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.example.demo.dao.CommonMapper"/>  此处是自己定义的包目录
            <!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
            <property name="caseSensitive" value="true"/>
        </plugin>
        <!-- optional,旨在创建class时,对注释进行控制 -->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--jdbc的数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/自己的数据库名称?useSSL=false"
                        userId="数据库连接账户"
                        password="数据库连接密码">
        </jdbcConnection>
        <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
            targetPackage     指定生成的model生成所在的包名
            targetProject     指定在该项目下所在的路径
        -->
        <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
            <!-- 是否对model添加 构造函数 -->
            <!--<property name="constructorBased" value="true"/>-->
            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
            <property name="enableSubPackages" value="false"/>
            <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
            <!-- 给Model添加一个父类 -->
            <!--<property name="rootClass" value="com."/>-->
            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
        <javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java"
                             type="XMLMAPPER">
            <!--<property name="enableSubPackages" value=""/>-->
            <!--
                    定义Maper.java 源代码中的ByExample() 方法的可视性,可选的值有:
                    public;
                    private;
                    protected;
                    default
                    注意:如果 targetRuntime="MyBatis3",此参数被忽略
             -->
            <!--<property name="exampleMethodVisibility" value=""/>-->
            <!--
                  方法名计数器
              Important note: this property is ignored if the target runtime is MyBatis3.
             -->
            <!--<property name="methodNameCalculator" value=""/>-->
          
        </javaClientGenerator>
        <table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
                    <generatedKey column="id" sqlStatement="MySql" identity="true"/>
                </table>
       
        <table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
                    <generatedKey column="id" sqlStatement="MySql" identity="true"/>
                </table>
        <table tableName="t_table_name" domainObjectName="TableName">此处是定义的model的名称
                    <generatedKey column="id" sqlStatement="MySql" identity="true"/>
                </table>

    </context>
</generatorConfiguration>
4.使用maven的plugins插件mybtais-generator下的mybatis-generator:generate,双击既可。
#########################################################################################

以上这些操作既可完成,接下来就可以对照着自己编写的目录寻找对应生成的文件了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值