データベースは、最新のアプリケーションの中核コンポーネントの 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 ドライバー (JDBC-ODBC ブリッジ ドライバー) : このドライバーは、ODBC (Open Database Connectivity) を使用して、Java アプリケーションを通じてデータベースに接続します。このタイプは、ローカル オペレーティング システムの ODBC ドライバーに依存するため、推奨されません。
-
タイプ 2 ドライバー (ネイティブ API ドライバー) : このドライバーは、データベース ベンダーのネイティブ ライブラリを使用してデータベースに接続します。各プラットフォームで個別のドライバーが必要です。
-
タイプ 3 ドライバー (ネットワーク プロトコル ドライバー) : このドライバーは、中間層サーバーを使用して JDBC 要求を転送し、データベースと通信します。このドライバーは通常、純粋な Java で実装されており、クライアントに特定のデータベース ドライバーをインストールする必要はありません。
-
タイプ 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 クエリを実行します。クエリ結果はオブジェクトに格納されResultSet
、resultSet.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 |