spring boot集成mybatis generator遇到的xml中代码重复的问题

spring boot集成mybatis generator遇到的问题

我在使用mybatis generator生成代码的时候,遇到一个问题:生成的xml文件中,有很多的重复代码。比如resultMap。是因为我在测试使用的表在其他的库中也存在(MySQL多个数据库有同一样的表)。
在网上找了很久,找到一个方法是在generatorConfig.xml的table标签中添加 catalog=“blog”(blog是当前使用的库名称)。这样的话xml中代码不会重复了。但是生成的sql还是存在问题(比如update blog…os_user set 字段=值 会在表名前边添加数据库名…这样的话还是不够完善)。最后在CSDN偶然看到一篇博客,上边介绍了如何解决这个问题。
就是在generatorConfig.xml中的jdbcConnection中添加<property name="nullCatalogMeansCurrent" value="true"/>添加上这个就可以解决问题了
下边贴上完整的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>
    <!--数据库驱动jar 在maven插件中声明-->
    <!--<classPathEntry location="D:\Apache\maven3.6.1\maven-repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar" />-->

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8"/>

        <commentGenerator>
            <!-- 默认值false,所有生成的元素都会包含用来说明这是生成元素的注释。true不会往生成的元素中添加任何注释。如果这个值设为true,那么所有的代码合并都会被禁用。 -->
            <property name="suppressAllComments" value="true" />
            <!-- 默认值 false,所有元素生成注释时都会带着生成时间。true注释中不会添加时间戳。 -->
            <property name="suppressDate" value="true"/>
            <!-- 此处为 true 时,生成的 Model 包含对应表字段注释 -->
            <property name="addRemarkComments" value="true"/>
            <!-- 此处为 true 时,生成的 Mapper 接口将增加 @Mapper 注解,Spring ComponentScan 时可自动识别 -->
            <property name="addMapperAnnotation" value="true"/>
        </commentGenerator>

        <!--数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="111111">
            <!--MySQL 不支持 schema 或者 catalog 所以需要添加这个-->
            <!--参考 : http://www.mybatis.org/generator/usage/mysql.html-->
           <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>
        <!--默认false
           Java type resolver will always use java.math.BigDecimal if the database column is of type DECIMAL or NUMERIC.
         -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建  使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetPackage="com.itgo.springboot.entity" targetProject="src\main\java">
            <!-- 去掉表名前面的schema,如果 enableSubPackages 属性设置为 false, 那么包名将会是 test.model而不是test.model.db2admin -->
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="mapper"  targetProject="src\main\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现  context id="DB2Tables" 修改targetRuntime="MyBatis3"  -->
        <!-- ANNOTATEDMAPPER 接口将会基于注解和 MyBatis 3.x SqlProviders。不会有XML文件生成。(注:就是纯接口使用注解的形式,不会有XML文件)依赖 MyBatis 3.0.4 或更高版本。 -->
        <!-- MIXEDMAPPER 接口将基于注解和XML的混合形式。 注解将会用在简单注解可以实现的地方。 此客户端不会生成SqlProvider,所有复杂的动态SQL都会生成在XML中。 -->
        <!-- XMLMAPPER 接口将会依赖于生成的XML文件。 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.itgo.springboot.mapper"  targetProject="src\main\java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等-->
        <table tableName="os_user" domainObjectName="OsUser">

        </table>

        <!-- maven命令方式运行 , mvn mybatis-generator:generate -->
        <!-- maven命令添加参数 , mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate -->

    </context>
</generatorConfiguration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值