まず、いくつかの概念を明確にします。
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 ダイナミック バインディング アイコンの完全な手順
問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...
序文決まり文句です。ここでは、フロントエンドとバックエンドの分離についての私の理解についてお話ししま...
序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...
[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...
目次1. 穴に落ちる2. 無駄な努力3. 若さの衝動4. 希望の光5. 問題KO 6. 追記1. 穴...
目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...
目次1 Apacheの役割2 Apacheのインストール3. Apacheを有効にする4 Apach...
Web 標準について議論するときに必ず話題になるのは、構造とプレゼンテーションを分離することの重要性...
この記事は、MySQL 8.0.12解凍版のインストールグラフィックチュートリアルを記録しています。...
厳密に言えば、nginx には負荷分散バックエンド ノードのヘルス チェック機能はありませんが、デフ...
ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...
CSS3 アニメーション トランジションを使用して、リンクの上にマウスを移動すると小さなポップアップ...
目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...