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() の使い方と違い

推薦する

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

CentOS7でFTPサーバーを設定する方法

FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。F...

CSSレコードテキストアイコン配置のいくつかのソリューション

開発中に画像とテキストが 1 行に表示されることはよくあります。2 つのインライン要素を揃えるのは通...

MySQL テーブルデータのインポートとエクスポートの例

この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...

MySQL マルチテーブルクエリの具体例

1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...

Ubuntu 14.04 に FTP サーバーをインストールするための実装手順

目次インストールソフトウェア管理匿名アクセスモード設定ファイルを変更するクライアントがサーバーにログ...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにし...

MySQL 8.0.12 のインストールと設定のグラフィックチュートリアル

MySQL 8.0.12 のダウンロードとインストールのチュートリアルを録画し、全員と共有しました。...

dockerがredisを再起動するとmysqlデータが失われる問題を解決する

公式ドキュメント:したがって、mysql は次のように起動する必要があります。 docker run...

Linux系でよく使われる運用・保守コマンド(まとめ)

目次1. システム監視2. ファイル操作3. ネットワーク通信4. システム管理仕事で必要なLinu...

Vue ダイナミック バインディング アイコンの完全な手順

0 アイコンと画像の違いアイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコン...

Tomcat のプレースホルダーによるポート設定方法 (パラメータ指定方式)

仕事で必要になったため、インターネットで多くの情報を見つけましたが、それらはすべてコピーアンドペース...

JS WebSocketを使用して簡単なチャットを実装する方法

目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...

エレメントアバターアップロード練習

この記事は、Element公式サイトとQiniu Cloud公式サイトを使用しています。 eleme...