• mybatisgenerator 修改表结构后实体不更新问题处理记录


    https://zhuanlan.zhihu.com/p/394327034

    https://www.jb51.net/article/152187.htm

    在构造文件中,这里是generatorConfig.xml添加连接数据库参数 nullCatalogMeansCurrent=true

            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                            connectionURL="jdbc:mysql://127.0.0.1:3309/db_test"
                            userId="root"
                            password="123456">
                <property name="nullCatalogMeansCurrent" value="true"/>
            </jdbcConnection> 

    或者

    "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&nullCatalogMeansCurrent=true";

    可以在数据库连接地址后面加上

    nullCatalogMeansCurrent=true

     

    本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+版本MySQL,都可以升级成8.0版本驱动。

    如果你是使用的5.X版本驱动,需要将Driver Class换成: com.mysql.cj.jdbc.Driver

    需要注意的是:

    8.0版本驱动DataSource相关的参数有变化:

    比如8.0版本驱动将参数 nullCatalogMeansCurrent 的默认值由true改为了false,如果你使用DatabaseMetaData.getTables获取所有的表信息,8.0版本驱动将返回所有库的表。

    1
    2
    // 默认会返回所有库的表,而不仅是datasource指定的库
    databaseMetaData.getTables(null, null, null, new String[]{"TABLE"})
     

    解决方案就是在连接池初始化时,将这个参数改为true,以HikariCP为例:

    Java Config:

    1
    2
    3
    HikariConfig config = new HikariConfig();
    ...
    config.addDataSourceProperty("nullCatalogMeansCurrent", true);

    Spring Boot 配置:

    1
    spring.datasource.hikari.data-source-properties.nullCatalogMeansCurrent=true
  • 相关阅读:
    Ajax ToolKit ModelPopupExtender报错:Sys.InvalidOperationException: Handler was not added through the Sys.UI.DomE
    C# 注释 类头部
    matlab练习程序(图像滤波时的边界处理2)
    更改chrome默认搜索引擎
    matlab练习程序(表面模糊)
    matlab练习程序(三阶张量TQR分解)
    linux命令行关机
    matlab练习程序(奇异值分解压缩图像)
    matlab练习程序(方框模糊)
    matlab练习程序(图像滤波时的边界处理)
  • 原文地址:https://www.cnblogs.com/zhoading/p/16304207.html
Copyright © 2020-2023  润新知