まず、いくつかの概念を明確にします。
JDBC 操作手順: (1)データベースとテーブルを作成する (2)プロジェクトを作成する (3)ドライバjarパッケージをインポートする (4)ドライバーを登録する
(5)接続する
序文 最近、MySQL 8.0 データベースをインストールしましたが、プログラムで接続するときに常に問題が発生しました。以前、いくつかの問題に遭遇しました。ここでは、JDBC を使用して MySQL に接続する際に発生する可能性のある問題の概要を示します。 その前に、環境について説明させてください。
ドライバー パッケージの URL の変更 例外情報
理由 例外を通じて、新しいドライバー URL が com.mysql.cj.jdbc.Driver であることがわかります。オンラインで情報を調べたところ、MySQL 6 以降、ドライバー パッケージは新しいドライバー URL を使用し始めたことがわかりました。古い 5.0 バージョンのドライバー パッケージを使用する場合は、ドライバー URL を使用する必要はありませんが、古いドライバーを使用すると予期しない問題が発生する可能性があります。したがって、ドライバー パッケージをアップグレードしてから、ドライバー URL の値を変更することをお勧めします。 回避策 ドライバーの URL を com.mysql.jdbc.Driver から com.mysql.cj.jdbc.Driver に変更します。 SSL警告 警告メッセージ
理由 警告メッセージは次のように翻訳されます。
回避策 通常、開発では SSL 接続を使用する必要はありません。接続文字列の後に useSSL=false パラメータを追加するだけです。ただし、SSL 接続が本当に必要な場合は、ドライバー URL の後に useSSL=true パラメータを追加します。 jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false タイムゾーンの問題 例外情報
理由 また、バージョンアップ後は、新バージョンのデータベースとシステムの間にタイムゾーンの差があるため、タイムゾーンserverTimezoneを指定する必要があります。 回避策 接続文字列の後にパラメータ &serverTimezone=GMT%2B8 を追加します。最終的な接続文字列は次のようになります。 jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8 データベースの時間を変更します。まずコマンドラインからデータベースに接続し、コマンドとその出力を次のように順番に入力します。 mysql> "%time_zone"のような変数を表示します。 +------------------+--------+ | 変数名 | 値 | +------------------+--------+ | システムタイムゾーン | | | タイムゾーン | システム | +------------------+--------+ セットに 2 行、警告 1 回 (0.04 秒) mysql> グローバルタイムゾーンを「+8:00」に設定します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) XML 構成ファイルでの & のエスケープ 例外情報
理由 これは、mybatis ジェネレーターを使用するときに発生するエラーです。当時、接続文字列の後に useSSL パラメータを追加したかったのですが、XML ファイルでは & が禁止されているため、& が必要な場合はエスケープ シンボル & に置き換える必要がありました。 回避策 接続文字列内の & 記号を & に変更します。 詳細な接続文字列リファレンス jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=GMT%2B8&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true もちろん、構成ファイルとして XML を使用する場合は、接続文字列内の & 記号を & に変更する必要があります。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Dockerでイメージをプルするための手順を完了する
>>: Vue ダイナミック バインディング アイコンの完全な手順
企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...
目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...
水平方向では、テーブル ヘッダーの配置を左、中央、右に設定できます。基本的な構文<TH ALI...
この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...
目次1. Dockerコンサルの概要2. nginxとconsulをベースにした自動検出と高可用性の...
解決策: システム内のすべての .vscode 関連プロセスを終了します (または、remote-s...
1. 基本仕様(1)InnoDBストレージエンジンを使用する必要があります。解釈:トランザクション、...
この記事の例では、参考までに貪欲なスネークを実装するためのJavaScriptの具体的なコードを共有...
どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...
現在のトランザクションはどの履歴バージョンを読み取ることができますか?読み取りビューは、トランザクシ...
今日、MySQL の新しいバージョン (8.0.21) をインストールしましたが、ノード フレームワ...
目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...
目次1. axioの基本的な使い方2. クロスドメインの問題を解決するには? 3. パッケージ4. ...
目的: MySQL 集計関数のネストされた使用集計関数は直接ネストできません。例: max(coun...
目次1. エラー現象2. エラー分析3. エラー解決1. エラー現象仮想マシンでLVGLエミュレータ...