多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)

文章目录

  • 一、powerdesigner设计表并导入数据库
    • 1.mysql odbc 连接软件
    • 2.设计数据库并导出sql和导入mysql数据库
  • 二、多项目使用mybatis-generator插件结合tk.mybatis自动生成mapper
  • 三、遇到问题

一、powerdesigner设计表并导入数据库

1.mysql odbc 连接软件

mysql-connector-odbc-5.3.6-win32.msi;
mysql-connector-odbc-5.3.6-winx64.msi;
我安装时提示缺少下图插件(百度安装即可)
(注意和powerdesigner位数一致,我是powerdesigner16 32位)
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第1张图片多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第2张图片

2.设计数据库并导出sql和导入mysql数据库

设计好数据表后选择数据库->生成数据库
在这里插入图片描述如下图选择即可:
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第3张图片

然后会生成sql并可以插入mysql数据库中,遇到俩个问题:
1.生成sql时勾选主键写在表中
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第4张图片
2.因为我一个模型中有多个表,有多个模型想插入一个mysql数据库中,导致自动生成的sql脚本中外键都从1开始命名导致多个sql脚本中外键命名重复,生成脚本后自己修改了下命名。
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第5张图片

二、多项目使用mybatis-generator插件结合tk.mybatis自动生成mapper

官方文档:https://github.com/abel533/Mapper/wiki/4.2.codegenerator
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第6张图片
用user自动生成bean,mapper和mapperxml,同时bean放入mall-api中,mapper和mapperxml放入user中

多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第7张图片
1.首先配置user项目的pom.xml文件


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    <parent>
        <groupId>com.zhiqiang.mallgroupId>
        <artifactId>mall-parentartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <groupId>com.zhiqiang.mallgroupId>
    <artifactId>userartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>username>
    <description>用户测试模块description>

    <properties>
        <java.version>1.8java.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>2.1.2version>
        dependency>

        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

        <dependency>
            <groupId>tk.mybatisgroupId>
            <artifactId>mapper-spring-boot-starterartifactId>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>

            <plugin>
                <groupId>org.mybatis.generatorgroupId>
                <artifactId>mybatis-generator-maven-pluginartifactId>
                <version>1.3.5version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/generatorConfig.xml
                    configurationFile>
                    <overwrite>trueoverwrite>
                    <verbose>trueverbose>
                configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysqlgroupId>
                        <artifactId>mysql-connector-javaartifactId>
                        <version>8.0.19version>
                    dependency>
                    <dependency>
                        <groupId>tk.mybatisgroupId>
                        <artifactId>mapperartifactId>
                        <version>3.5.2version>
                    dependency>
                dependencies>
            plugin>
        plugins>
    build>

project>

2.配置generatorConfig.xml文件



<generatorConfiguration>


    <context id="Tables" targetRuntime="MyBatis3" defaultModelType="flat">



        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
            <property name="caseSensitive" value="true"/>
        plugin>

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


        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mall1?serverTimezone=UTC"
                        userId="root"
                        password="bookjiang">
        jdbcConnection>
        
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>

        
        
        <javaModelGenerator targetPackage="com.zhiqiang.mall.bean"
                            targetProject="../mall-api/src/main/java">     
            
            <property name="enableSubPackages" value="false"/>
            
            <property name="constructorBased" value="true"/>
            
            <property name="trimStrings" value="true"/>
            
            <property name="immutable" value="false"/>
    javaModelGenerator>
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src/main/resources"/>

        
        <javaClientGenerator targetPackage="com.zhiqiang.mall.user.mapper"
                             targetProject="../user/src/main/java"
                             type="XMLMAPPER"/>
        





        <table tableName="ums_admin" domainObjectName="UmsAdmin" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_admin_login_log" domainObjectName="UmsAdminLoginLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_growth_change_history" domainObjectName="UmsGrowthChangeHistory" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member" domainObjectName="UmsMember" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member_level" domainObjectName="UmsMemberLevel" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member_login_log" domainObjectName="UmsMemberLoginLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member_product_category_relation" domainObjectName="UmsMemberProductCategoryRelation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member_receive_address" domainObjectName="UmsMemberReceiveAddress" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_member_statistics_info" domainObjectName="UmsMemberStatisticsInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_points_change_history" domainObjectName="UmsPointsChangeHistory" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="ums_points_consume_setting" domainObjectName="UmsPointsConsumeSetting" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />


        <table tableName="cms_help" domainObjectName="CmsHelp" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="cms_help_classify" domainObjectName="CmsHelpClassify" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="cms_member_report" domainObjectName="CmsMemberReport" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />


        <table tableName="oms_cart_item" domainObjectName="OmsCartItem" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_company_address" domainObjectName="OmsCompanyAddress" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order" domainObjectName="OmsOrder" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order_item" domainObjectName="OmsOrderItem" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order_operate_history" domainObjectName="OmsOrderOperateHistory" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order_return_reason" domainObjectName="OmsOrderReturnReason" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order_returns_apply" domainObjectName="OmsOrderReturnsApply" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="oms_order_setting" domainObjectName="OmsOrderSetting" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />


        <table tableName="pms_attribute" domainObjectName="PmsAttribute" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_attribute_value" domainObjectName="PmsAttributeValue" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_brand" domainObjectName="PmsBrand" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_classify_attribute" domainObjectName="PmsClassifyAttribute" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_classify_attribute_relation" domainObjectName="PmsClassifyAttributeRelation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_comment" domainObjectName="PmsComment" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_comment_replay" domainObjectName="PmsCommentReplay" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_freight_template" domainObjectName="PmsFreightTemplate" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_product" domainObjectName="PmsProduct" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_product_check_record" domainObjectName="PmsProductCheckRecord" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_product_classify" domainObjectName="PmsProductClassify" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_product_operate_log" domainObjectName="PmsProductOperateLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="pms_sku" domainObjectName="PmsSku" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />



        <table tableName="sms_coupon" domainObjectName="SmsCoupon" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_coupon_history" domainObjectName="SmsCouponHistory" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_coupon_product_classify_relation" domainObjectName="SmsCouponProductClassifyRelation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_coupon_product_relation" domainObjectName="SmsCouponProductRelation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_home_advertise" domainObjectName="SmsHomeAdvertise" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_home_brand" domainObjectName="SmsHomeBrand" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_home_new_product" domainObjectName="SmsHomeNewProduct" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_home_recommend_product" domainObjectName="SmsHomeRecommendProduct" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_sales" domainObjectName="SmsSales" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_sales_product_relation" domainObjectName="SmsSalesProductRelation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
        <table tableName="sms_sales_session" domainObjectName="SmsSalesSession" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />

    context>
generatorConfiguration>

3.右侧maven项目双击mybatis-generator即可生成

三、遇到问题

1.serverTimezone报错
mysql数据库连接jar包版本问题,在url中添加serverTimezone=UTC即可
多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第8张图片
2.生成mapper的java类中@Table,@Id可能报红,快捷键导入此包即可。多模块项目使用mybatis-generator插件结合tk.mybatis自动生成mapper(mysql数据库由powerdesigner设计并生成)_第9张图片

你可能感兴趣的:(微服务实践)