まず、いくつかの概念を明確にします。
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 ダイナミック バインディング アイコンの完全な手順
フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...
最近、React プロジェクトで初めてhtml-webapck-pluginプラグインを使用しました...
設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...
1. RPMバージョンのインストールデータベースの他のバージョンがあるかどうかを確認し、ある場合は完...
Web プロジェクトを開発する場合、IIS をインストールする必要があります。IIS がインストール...
1. 兄弟要素の余白を結合する効果は次のようになります: (2 つの間の間隔は 150 ピクセルでは...
元の構成: http { ...... limit_conn_zone $binary_remote...
序文docker イメージを削除できません。docker docker imagesを確認すると、イ...
なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...
コードをコピーコードは次のとおりです。 1. 新浪微博<a href="http:/...
序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...
CSSスタイルとHTMLタグ要素を使用するさまざまな HTML タグに点線の境界線を追加するために、...
今日、プログラムが間違った時刻を挿入し、フィールドがデフォルト値 CURRENT_TIMESTAMP...
mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...
Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...