【Java上級】JDBCを深く理解する:Javaデータベース接続を詳しく解説

ここに画像の説明を挿入します

データベースは、最新のアプリケーションの中核コンポーネントの 1 つです。Web アプリケーション、モバイル アプリケーション、デスクトップ アプリケーションのいずれであっても、ほとんどすべてのアプリケーションは、データを保存および取得するためにデータベースと対話する必要があります。Java は、データベースと対話するための強力な方法である JDBC (Java Database Connectivity) を提供します。この記事では、JDBC の理解と使用に役立つ、基本概念から実践的なプログラミング例まで、JDBC のあらゆる側面を詳しく説明します。

JDBCとは何ですか?

JDBC は Java Database Connectivity の略称で、リレーショナル データベースと対話するための Java の標準 API です。JDBC を使用すると、Java アプリケーションがさまざまなデータベース管理システム (MySQL、Oracle、PostgreSQL など) に接続し、SQL クエリと更新を実行し、結果セットを処理できるようになります。

JDBC を使用すると、次のタスクを実行できます。

  • データベースに接続する
  • SQLクエリを送信する
  • クエリ結果を処理する
  • データベースデータを更新する
  • データベース接続を管理する

JDBC アーキテクチャ

JDBC の使用方法を詳しく説明する前に、JDBC のアーキテクチャを見てみましょう。JDBC アーキテクチャは、JDBC API と JDBC ドライバーという 2 つの主要な部分に分かれています。

JDBC API

JDBC API は、データベースに接続してデータベース操作を実行するために Java によって提供されるインターフェイスとクラスのセットです。java.sqlこれらのインターフェイスとクラスは、 およびパッケージにありますjavax.sql

JDBC API のいくつかのコア インターフェイスとクラスを次に示します。

  • DriverManager: データベース ドライバーの管理に使用され、データベース接続の確立を担当するクラス。
  • Connection: データベースへの接続を表し、Statementオブジェクトの作成に使用されます。
  • Statement: SQL クエリを実行するために使用されるオブジェクト。
  • PreparedStatement: から継承されStatement、プリコンパイルされた SQL クエリを実行するために使用され、パフォーマンスとセキュリティが向上します。
  • CallableStatement: から継承されPreparedStatement、データベース ストアド プロシージャを実行するために使用されます。
  • ResultSet: SQL クエリの結果セットを表し、クエリ結果を取得するために使用されます。

JDBCドライバー

JDBC ドライバーは、JDBC API を実装するデータベース ベンダーによって提供される具象クラス ライブラリです。Java アプリケーションがデータベースと通信できるように、各データベース ベンダーは独自の JDBC ドライバーを提供する必要があります。

JDBC ドライバーには次の 4 種類があります。

  1. タイプ 1 ドライバー (JDBC-ODBC ブリッジ ドライバー) : このドライバーは、ODBC (Open Database Connectivity) を使用して、Java アプリケーションを通じてデータベースに接続します。このタイプは、ローカル オペレーティング システムの ODBC ドライバーに依存するため、推奨されません。

  2. タイプ 2 ドライバー (ネイティブ API ドライバー) : このドライバーは、データベース ベンダーのネイティブ ライブラリを使用してデータベースに接続します。各プラットフォームで個別のドライバーが必要です。

  3. タイプ 3 ドライバー (ネットワーク プロトコル ドライバー) : このドライバーは、中間層サーバーを使用して JDBC 要求を転送し、データベースと通信します。このドライバーは通常、純粋な Java で実装されており、クライアントに特定のデータベース ドライバーをインストールする必要はありません。

  4. タイプ 4 ドライバー (純粋な Java ドライバー) : このドライバーは完全に Java で書かれており、ネイティブ ライブラリに依存する必要はありません。これは、最も一般的に使用される JDBC ドライバーの種類です。

JDBCを使用してデータベースに接続する

以下では、簡単な例を使用して、JDBC を使用してデータベースに接続し、SQL クエリを実行し、クエリ結果を処理する方法を示します。

ステップ 1: データベースドライバーをロードする

まず、使用するデータベース ドライバーをロードする必要があります。データベースが異なると、ドライバーのクラス名も異なります。一般的なデータベース ドライバーのクラス名をいくつか示します。

  • MySQLドライバー:com.mysql.cj.jdbc
try {
    
    
    // 加载 MySQL 驱动程序
    Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
    
    
    System.err.println("无法加载数据库驱动程序");
    e.printStackTrace();
}

上記のコードでは、Class.forName()メソッドを使用して MySQL ドライバーをロードします。ロードに失敗すると、ClassNotFoundException例外がスローされます。

ステップ 2: データベース接続を確立する

ドライバーが正常に読み込まれると、データベースへの接続を確立できます。このステップでは、データベースの URL、ユーザー名、パスワードを指定する必要があります。

String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";

try {
    
    
    // 建立数据库连接
    Connection connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
    
    
    System.err.println("无法建立数据库连接");
    e.printStackTrace();
}

上記のコードでは、DriverManager.getConnection()メソッドを使用してデータベースへの接続を確立します。このメソッドは、データベース URL、ユーザー名、パスワードの 3 つのパラメーターを受け入れます。接続が失敗すると、SQLException例外がスローされます。

ステップ 3: SQL クエリを実行する

データベース接続が確立されると、SQL クエリを実行できるようになります。以下は、クエリを実行して結果を取得する方法を示す簡単な例です。

try {
    
    
    // 创建 Statement 对象
    Statement statement = connection.createStatement();
    
    // 执行 SQL 查询
    String sql = "SELECT * FROM employees";
    ResultSet resultSet = statement.executeQuery(sql);
    
    // 处理查询结果
    while (resultSet.next()) {
    
    
        int employeeId = resultSet.getInt("employee_id");
        String firstName = resultSet.getString("first_name");
        String lastName = resultSet.getString("last_name");
        
        System.out.println("Employee ID: " + employeeId);
        System.out.println("First Name: " + firstName);
        System.out.println("Last Name: " + lastName);
    }
    
    // 关闭结果集和语句
    resultSet.close();
    statement.close();
} catch (SQLException e) {
    
    
    System.err.println("SQL 查询失败");
    e.printStackTrace();
}

上記のコードでは、最初にオブジェクトを作成しStatement、次にexecuteQuery()メソッドを使用して SQL クエリを実行します。クエリ結果はオブジェクトに格納されResultSetresultSet.next()メソッドを使用して結果セット内の行を反復処理し、列名またはインデックスを使用してデータを取得できます。

ステップ 4: 接続を閉じる

最後に、データベース接続の使用が終了したら、必ずデータベース接続を閉じてリソースを解放してください。

try {
    
    
    // 关闭数据库连接
    connection.close();
} catch (SQLException e) {
    
    
    System.err.println("关闭数据库连接失败");
    e.printStackTrace();
}

これは単純な JDBC クエリの例です。もちろん、JDBC は、より複雑なクエリ、更新、トランザクション処理機能もサポートしています。

要約する

JDBC はデータベースと対話するための Java の標準 API であり、さまざまなデータベース管理システムに接続し、SQL クエリを実行し、データを更新できます。この記事では、ドライバーのロード、接続の確立、クエリの実行、接続の終了など、JDBC の基本概念と使用法を紹介します。この記事が、JDBC をよりよく理解し、JDBC を使用して強力なデータベース アプリケーションを構築するのに役立つことを願っています。

著者情報

著者:Fanyi
CSDN: https: //techfanyi.blog.csdn.net
Nuggets:https://juejin.cn/user/4154386571867191

おすすめ

転載: blog.csdn.net/qq_21484461/article/details/133444235