JDBC 接続 (MySQL への接続) の 6 ステップのサンプル コード

JDBC 接続 (MySQL への接続) の 6 ステップのサンプル コード

JDBC の 6 つのステップ:

1. ドライバーを登録する

2. データベース接続を取得する

3. データベースの操作オブジェクトを取得する

4. SQL文を実行する

5. クエリ結果セットを処理する(実行されたステートメントに選択ステートメントがない場合、この手順を記述する必要はありません)

6. リソースを閉じる

ステップ1: ドライバーを登録する

//例外を処理する必要があります //コードはバージョンによって異なる場合があります。古いバージョンは DriverManager.register(new com.mysql.jdbc.Driver()); です。
// または Class.forName("com.mysql.jdbc.Driver");
 
 
//新しいバージョンは DriverManager.register(new com.mysql.cj.jdbc.Driver()); です。
// または Class.forName("com.mysql.cj.jdbc.Driver");

ステップ2: データベース接続を取得する

// try..catch を実行してリソースを閉じる必要があるため、try の外側に記述して null 値を割り当てます。Connection conn = null;
...
// 戻り値は Connection です。古いバージョンと新しいバージョンの URL の書き方も異なります。 // jdbc:mysql://localhost:3306/t_use は以前と同じです。t_use を独自のデータベース名に変更してください。 // 古いバージョン conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use","user name","password");
 
 
//新しいバージョンconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use?serverTimezone=GMT%2B8","ユーザー名","パスワード");

ステップ3: データベース操作オブジェクトを取得する

//これは前と同じ接続です。ステートメント st = null;
...
//このようにしてオブジェクトが作成されます st = conn.createStatement();

ステップ4: SQL文を実行する

//SQL ステートメントを引用符で囲んで記述します。String sql = " ";
// 作成したオブジェクトを使用して、この SQL ステートメントにアクセスします // ここで他に言うことがあります。選択ステートメントでない場合は、次のステートメントを使用します。戻り値は int なので、手順 5 は必要ありません。 st.executeUpdate(sql);
 
//SQL ステートメントが select の場合は、次のステートメントを使用する必要があり、この値を受け取るための ResultSet オブジェクトも定義する必要があります //次に、手順 5 に進みます ResultSet rs = null; //Connection rs = st.executeQuery(sql); と同じです

ステップ5: クエリ結果セットを処理する

//これはselect文によってのみ処理され、getStringだけでなくgetIntなども実行できます。while (rs.next()) {
    String str = rs.getString("出力するフィールドの名前");
}

ステップ6: リソースを閉じる

//最初の5つのステップはすべてtryで実行され、6番目のステップはfinallyで実行されます //接続を閉じます if (rs != null) {
                試す {
                    rs.close();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }
 
            st != null の場合 {
                試す {
                    st.close();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }
 
            (conn != null) の場合 {
                試す {
                    接続を閉じる();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }

接続を閉じる順序もあります。最初に ResultSet を閉じ、次に Statement オブジェクトを閉じ、最後に Connection オブジェクトを閉じます。

完全なコード

パッケージ jdbc.com;
com.mysql.cj.protocol.Resultset をインポートします。
 
java.sql.* をインポートします。
パブリッククラスTest02 {
    パブリック静的voidメイン(String[] args) {
 
        接続 conn = null;
        ステートメント st = null;
        結果セット rt = null;
        試す {
            //接続を登録する(1行で記述可能)
            //com.mysql.cj.jdbc.Driver ドライバー = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(新しいcom.mysql.cj.jdbc.Driver());
            //データベース接続を取得します。conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/liu2?serverTimezone=GMT%2B8","ユーザー名","パスワード");
            //データベース操作オブジェクトを取得します。st = conn.createStatement();
            //SQL ステートメントを実行します。String sql = "select ename,sal from emp order by sal desc";
            rt = st.executeQuery(sql);
            //クエリステートメントの処理 while (rt.next()) {
               文字列 ename = rt.getString("ename");
               文字列 sal = rt.getString("sal");
               System.out.println(ename + "," + sal);
           }
        } catch (SQLException スロー可能) {
            throwables.printStackTrace();
        }ついに {
            //接続を閉じる if (rt != null) {
                試す {
                    rt.close();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }
 
            st != null の場合 {
                試す {
                    st.close();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }
 
            (conn != null) の場合 {
                試す {
                    接続を閉じる();
                } catch (SQLException スロー可能) {
                    throwables.printStackTrace();
                }
            }
 
 
        }
    }
}

最後に、値を渡すと、SQL インジェクションが発生する可能性があります。解決策は、Statement を PreparedStatement に変更して、SQL インジェクションの問題を回避することです。ただし、3 番目と 4 番目の手順のコードは若干異なるため、詳細は説明しません。 。

要約する

これでJDBC接続(MySQLとの接続)に関する記事は終了です。JDBCとMySQL接続に関するより詳しい内容は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL JDBCプログラミングを5つのステップで完全に解説
  • MySQL データベース JDBC プログラミングの詳細なプロセス
  • MySQL で JDBC を実装するための詳細な手順
  • JDBC を使用して MySQL データベースに接続する Java の詳細な説明
  • JDBCはMySQLに接続し、ファジークエリを実装します
  • MySQL データベース JDBC プログラミング (Java は MySQL に接続します)
  • Java から MySQL 8.0 JDBC に接続するための詳細な手順 (IDEA バージョン)
  • JDBC に基づく MySql パブリック メソッドへのアクセスの例の分析
  • JDBC 接続 MYSQL ステップバイステップの説明

<<:  回転するフリップカードアニメーションの効果を実現するCSS

>>:  将来人気が出るであろういくつかのナビゲーション方向

推薦する

Linux の操作とメンテナンスの基本的なスワップ パーティションと LVM 管理のチュートリアル

目次1. スワップパーティション SWAP 1.1 スワップファイルを作成する1.2 スワップパーテ...

grep を使用して MySQL エラー ログ情報を取得する方法の詳細な説明

MySQL のメンテナンスを容易にするために、エラー情報を収集するためのインターフェースを提供するス...

Mysql の使用法の概要

導入EXISTS は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されま...

Websocket+Vuexはリアルタイムチャットソフトウェアを実装します

目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...

HTML タグの表示モード (ブロックレベル タグ、インライン タグ、インライン ブロック タグ) に関する簡単な説明

今日の講義では、HTML におけるタグの表示モードについてお話ししましたが、これはブロックレベルタグ...

CentOS7でPHPスケジュールタスクを実行する方法

序文この記事は主に CentOS7 で PHP スケジュールタスクを実行することに関する関連コンテン...

HTMLテキスト内のすべてのタグを置き換える方法

(?i) は大文字と小文字を区別しないことを意味します。大文字と小文字をすべて置き換えます。 htm...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

Linuxシステムのログの詳細な紹介

目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....

JavaScript における clientWidth、offsetWidth、scrollWidth の違い

1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

CentOS7 で docker を使用して Apollo 構成センターをデプロイする実装

Apollo オープンソース アドレス: https://github.com/ctripcorp/...

nginx ウェブサイト サービスのアンチホットリンクを設定する方法 (推奨)

1. ホットリンクの原則1.1 Webページの準備Web ソース ホスト (192.168.153...

Linux で at および cron スケジュールタスクをカスタマイズする方法

Linux システムには 2 種類のスケジュールされたタスクがあります。1 つは 1 回だけ実行され...

ニューススタイルのウェブサイトデザイン例25選

bmi ボイジャーピッチフォークアルスター食料品店チャウ真/斜めポスタこれは偽のDIYですクリエイテ...