まず、いくつかの概念を明確にします。
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 ダイナミック バインディング アイコンの完全な手順
日々の開発経験と関連するオンライン情報に基づいて、アダプティブとレスポンシブの違いをシンプルでわかり...
1. ダウンロードリンクをダウンロードするダウンロードをクリックします。Oracle アカウントにロ...
テーブル ヘッダーの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できま...
VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...
以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...
説明するこのインターフェースを呼び出すときは、次の点に注意する必要があります。パブリック IP アド...
目次1. MySQLレプリケーションプロセス2. MySQLの遅延問題の分析3. プロモーション期間...
Linuxライブラリを生成するLinux版はcentos7.3を使用し、コンパイルしてライブラリを生...
マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...
凡例コンポーネントは、ECharts でよく使用されるコンポーネントです。シリーズ マーカーの名前を...
[解決策1: パディングの実装]原理:要素の padding の値がパーセンテージの場合、このパーセ...
目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...
HTML ハイパーテキスト ドキュメントの基本構造は、ドキュメント ヘッダーとドキュメント本体の 2...
今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...
目次1. withRouterコンポーネントを使用する2. ルートタグを使用するReactRoute...