前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解

Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解

作者头像
JavaEdge
发布2021-02-22 14:15:36
2820
发布2021-02-22 14:15:36
举报
文章被收录于专栏:JavaEdgeJavaEdge

生成器设计思路: 连接数据库 -> 获取表结构 -> 生成文件

1 下载与安装

  • 贴至pom 文件

2 新建配置文件

  • 项目实例
代码语言:javascript
复制
<generatorConfiguration>
    <classPathEntry location="/Volumes/doc/jar/mysql-connector-java-8.0.18.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        commentGenerator>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/mall?characterEncoding=utf-8"
                        userId="root"
                        password="root">
        jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        javaTypeResolver>

        <javaModelGenerator targetPackage="com.javaedge.mall.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />

        javaModelGenerator>

        <sqlMapGenerator targetPackage="mappers"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.javaedge.mall.dao"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        javaClientGenerator>

        <table tableName="mall_order" domainObjectName="Order" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"/>
        <table tableName="mall_order_item" domainObjectName="OrderItem" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"/>

    context>
generatorConfiguration>

3 生成文件

  • 默认不覆盖已有文件,重复生成文件后果
  • 不过,可以设置可覆盖

但是注意,对于 xml 文件的内容是追加生成的,不会覆盖!怎么解决呢?

  • 选用该插件
  • 修改配置文件

命令行生成

代码语言:javascript
复制
mvn mybatis-generator:generate

插件运行

  • Maven 插件按钮
  • gradle 插件按钮

生成成功

生成新文件后的项目结构
生成新文件后的项目结构

可多次执行,类会覆盖,但是设计 mapper 的 xml 文件会重复生成

附 :配置文件详解

代码语言:javascript
复制
<generatorConfiguration>


 
     
<classPathEntry location="/Volumes/doc/jar/mysql-connector-java-5.1.6.jar" />


<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >

    
    <property name="autoDelimitKeywords" value="false"/>
    
    <property name="javaFileEncoding" value="UTF-8"/>
    
    <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
    
    <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>

    
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>

    
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
        
    jdbcConnection>

    
    <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
        
        <property name="forceBigDecimals" value="false"/>
    javaTypeResolver>

    
    <javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
        
        <property name="constructorBased" value="false"/>

        
        <property name="enableSubPackages" value="true"/>

        
        <property name="immutable" value="false"/>

        
        <property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>

        
        <property name="trimStrings" value="true"/>
    javaModelGenerator>

    
    <sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
        
        <property name="enableSubPackages" value="true"/>
    sqlMapGenerator>

    
    <javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
        
        <property name="enableSubPackages" value="true"/>

        
    javaClientGenerator>

    
    <table tableName="userinfo" >

        
        <property name="constructorBased" value="false"/>

        
        <property name="ignoreQualifiersAtRuntime" value="false"/>

        
        <property name="immutable" value="false"/>

        
        <property name="modelOnly" value="false"/>

        

        

        

        

        

        
        <property name="selectAllOrderByClause" value="age desc,username asc"/>

        
        <property name="useActualColumnNames" value="false"/>

        

        

         
         <columnOverride column="username">
             
             <property name="property" value="userName"/>

             

             

             

             
         columnOverride>

         
    table>

context>

generatorConfiguration>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 下载与安装
  • 2 新建配置文件
  • 3 生成文件
    • 命令行生成
      • 插件运行
      • 附 :配置文件详解
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档