MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

序文

この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTablesに関する関連コンテンツを紹介します。MySQL Connector/J 8.0バージョンドライバは、以前のMySQL 5.5+バージョンと下位互換性があります。MySQL 5.5+バージョンを使用している場合は、8.0バージョンドライバにアップグレードできます。

ドライバの 5.X バージョンを使用している場合は、ドライバ クラスをcom.mysql.cj.jdbc.Driverに変更する必要があります。

以下の点に注意してください。

バージョン 8.0 のドライバー DataSource に関連するパラメータが変更されました。

たとえば、バージョン 8.0 のドライバーでは、パラメータ nullCatalogMeansCurrent のデフォルト値が true から false に変更されます。DatabaseMetaData.getTables DatabaseMetaData.getTables使用してすべてのテーブル情報を取得すると、バージョン 8.0 のドライバーではすべてのデータベース テーブルが返されます。

// デフォルトでは、データソースで指定されたデータベースだけでなく、すべてのデータベース テーブルが返されます databaseMetaData.getTables(null, null, null, new String[]{"TABLE"})

解決策は、接続プールが初期化されるときにこのパラメータを true に変更することです。HikariCP を例に挙げます。

Java 構成:

HikariConfig config = 新しい HikariConfig();
...
config.addDataSourceProperty("nullCatalogMeansCurrent", true);

Spring Boot 構成:

spring.datasource.hikari.data-source-properties.nullCatalogMeansCurrent=true

その他のパラメータの変更については、[公式ドキュメント]を参照してください。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • mysql.data.dll ドライバーのさまざまなバージョンの簡単な分析
  • MybatisリバースエンジニアリングでMysql8.0バージョンドライバを使用する際に発生する問題の詳細な説明

<<:  ファイル共有サーバーを構築するための samba + OPENldap の詳細な説明

>>:  Vue.set() と this.$set() の使い方と違い

推薦する

HTML で div を非表示にする テーブルを非表示にする TABLE または DIV コンテンツの CSS スタイル

今夜、数日間悩まされていた問題を解決しました。本当に解決したかどうかはわかりませんが、解決されている...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

CSS 疑似要素を使用して複数の連続する要素のスタイルを制御する方法

CSS 疑似要素を使用して要素を制御する場合、一部の要素のスタイルを変更する必要があることがよくあり...

Vue2.0/3.0 での provide と inject の使用例

目次1. provide/inject の用途は何ですか? 2. provide/injectの使い...

TypeScript のユニオン型、交差型、型ガード

目次1. ユニオンタイプ2. クロスオーバータイプ3. 型保護3.1 カスタム型保護3.2 保護の種...

docker を使用して Kong クラスター操作を構築する

docker コンテナの下に kong クラスターを構築するのは非常に簡単です。公式サイトの紹介も非...

localStorageの有効期限を設定するいくつかの方法

目次問題の説明1. 基本的な解決策2. 中間的な解決策3. 高度なソリューション4. ハードコアソリ...

VMWare12 グラフィックチュートリアルで Apple Mac OS X をインストールする

1. はじめに:友人はシステム知識を学びたいと考えており、Apple のラップトップを使用していまし...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

関連記事:初心者が学ぶ HTML タグ (3)導入された HTML タグは、必ずしも XHTML 仕...

userdel コマンドを使用して Linux ユーザーを削除する方法の詳細なチュートリアル

セルデルとは何かuserdel は、ユーザーを削除するための低レベルのツールです。 Debian で...

Vueルータールーティングの詳細な説明

目次1. 基本的な使い方2. 注意すべき点3. マルチレベルルーティング(マルチレベルルーティング)...

リアクトルーティングガード(ルーティングインターセプション)の実装

React は Vue とは異なります。ルートにメタ文字を設定することでルートインターセプションを実...

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

CentOS 6.5 インストール mysql5.7 チュートリアル

1. 新機能MySQL 5.7 はエキサイティングなマイルストーンです。デフォルトの InnoDB ...