JDBCの概要
JDBCは、SQLステートメントを実行するために使用できるJava API(アプリケーションプログラミングインターフェイス、アプリケーションプログラムインターフェイス)であり、データベースとJavaアプリケーション間のリンクです。
JDBCの正式名称はJava DataBase Connectivityです。これは、さまざまなリレーショナルデータベースにアクセスするための統一された標準インターフェースを指定するオブジェクト指向のアプリケーションプログラムインターフェースのセットです。
Java言語では、データベースプログラミング用に豊富なクラスとインターフェースが提供されています。これらのクラスとインターフェースは、データアクセスと処理を容易にするために使用できます。このセクションでは、よく使用されるJDBCインターフェースとクラスをいくつか紹介します。これらのクラスとインターフェースはすべてjavaです。 .sqlパッケージ。
接続インターフェース
Connectionインターフェースは、特定のデータベースへの接続を表し、接続コンテキストでSQLステートメントを実行し、結果を返します。
接続インターフェースの一般的なメソッド:
方法 | 機能説明 |
---|---|
createStatement() | ステートメントオブジェクトの作成 |
createStatement(int resultSetType、int resultSetConcurrency) | Statementオブジェクトを作成します。これにより、指定されたタイプ、同時実行性、および保存可能性を持つResultSetオブジェクトが生成されます |
prepareStatement() | 前処理されたオブジェクトのprepareStatementを作成する |
isReadOnly() | 現在のConnectionオブジェクトの読み取りモードが読み取り専用かどうかを確認します |
setReadOnly() | 現在のConnectionオブジェクトの読み取りおよび書き込みモードを設定します。デフォルトは非読み取り専用モードです |
コミット() | 最後のコミット/ロールバック後に行われたすべての変更を永続的な変更にし、このConnectionオブジェクトによって現在保持されているすべてのデータベースロックを解放します |
roolback() | 現在のトランザクションで行われたすべての変更をキャンセルし、このConnectionオブジェクトによって現在保持されているすべてのデータベースロックを解放します |
閉じる() | このConnectionオブジェクトのデータベースとJDBCリソースが自動的に解放されるのを待つのではなく、すぐに解放します |
ステートメントインターフェイス
Statementインターフェースは、確立された接続に基づいてSQLステートメントをデータベースに送信するために使用されます。JDBCには、Statement、PreparedStatement、CallableStatementの3種類のStatementオブジェクトがあります。Statementオブジェクトは、パラメータなしの単純なSQLステートメントを実行するために使用されます。PreparedStatementは、Statementを継承して動的SQLステートメントを実行します。CallableStatementは、PreparedStatementを継承して、データベース内のストアドプロシージャへの呼び出しを実行します。
Statementインターフェースの一般的なメソッド:
方法 | 機能説明 |
---|---|
実行(文字列sql) | 複数の結果セットを返す可能性がある静的SELECTステートメントを実行する |
executeQuery(文字列sql) | 単一のResultSetオブジェクトを返す、指定されたSQLステートメントを実行します。 |
clearBarch() | このStatementオブジェクトの現在のSQLコマンドリストをクリアします |
executeBarch() | コマンドのバッチをデータベースに送信して実行します。すべてのコマンドが正常に実行されると、更新カウントの配列が返されます。配列要素の順序は、SQLステートメントが追加された順序に対応しています。 |
addBarch(String sql) | 指定されたSQLコマンドを、このStatementオブジェクトの現在のコマンドリストに追加します。ドライバーがバッチ処理をサポートしていない場合、例外がスローされます |
閉じる() | Statementインスタンスが占有しているデータベースとJDBCリソースを解放する |
PreparedStatementインターフェース
PreparedStatementインターフェースは、SQLステートメントを動的に実行するために使用されます。PreparedStatementインスタンスによって実行されるSQLステートメントはコンパイルされ、PreparedStatementインスタンスに保存されるため、SQLステートメントを繰り返し実行できます。
PreparedStatementインターフェースの一般的なメソッド:
方法 | 機能説明 |
---|---|
setInt(int index、int k) | 指定された位置のパラメーターをint値に設定します |
setFloat(int index、float f) | 指定された位置のパラメーターを浮動小数点値に設定します |
setLong(int index、long l) | 指定された位置のパラメーターを長い値に設定します |
setDouble(int index、double d) | 指定された位置のパラメーターをdouble値に設定します |
setBoolean(int index、boolean b) | 指定された位置のパラメーターをブール値に設定します |
setDate(int index、date date) | 指定された位置のパラメーターを日付値に設定します |
executeQuery() | このPreparedStatementオブジェクトでSQLクエリを実行し、クエリによって生成されたResultSetオブジェクトを返します |
setString(int index、String s) | 指定された場所のパラメーターを対応する文字列値に設定します |
setNull(int index、intsqlType) | 指定された位置のパラメーターをSQL NULLに設定します |
executeUpdate() | 前のセクションに含まれているパラメーターを使用して、動的なINSERT、UPDATE、またはDELETEステートメントを実行する |
clearParameters() | すべてのパラメーターの現在の値をクリアします |
DriverManagerクラス
DriverManagerクラスは、データベース内のすべてのドライバーを管理するために使用されます。彼はJDBCの管理レイヤーであり、ユーザーとドライバーの間で機能し、使用可能なドライバーを追跡し、データベースドライバー間の接続を確立します。getConnection()メソッドを介して接続を確立できる場合は接続が返され、それ以外の場合は例外がスローされます。
DriverManagerクラスの一般的なメソッド:
方法 | 機能説明 |
---|---|
getConnection(String url、String user、String password) | 3つのエントリパラメータ(データベースに接続するためのURL、ユーザー名、およびパスワード)を指定して、データベースへの接続を取得します。 |
setLoginTimeout() | データベースへのログイン試行時にドライバーが待機できる最大時間(秒)を取得します |
println(文字列メッセージ) | メッセージを現在のJDBCログストリームに出力する |
ResultSetインターフェース
ResultSet 接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。ResultSet 实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针向下移动。
ResultSet 接口的常用方法:
方法 | 功能描述 |
---|---|
geInt() | 以int形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回0 |
getFloat() | 以float形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回0 |
getDate() | 以data形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回null |
getBoolean() | 以boolean形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回null |
getString() | 以String形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回null |
getObject() | 以Object形式获取此ResultSet 对象当前行的指定列值。如果列值是NULL,则返回null |
first() | 将指针移到当前记录的第一行 |
last() | 将指针移到当前记录的最后一行 |
next() | 将指针向下移一行 |
beforeFirst() | 将指针移到集合的开头(第一行位置) |
afterLast() | 将指针移到集合的尾部(最后一行位置) |
absolute(int index) | 将指针移到ResultSet 给定编号的行 |
isFrist() | 判断指针是否位于当前ResultSet 集合的第一行。如果是返回true,否则返回false |
isLast() | 判断指针是否位于当前ResultSet 集合的最后一行。如果是返回true,否则返回false |
updateInt() | 用int值更新指定列 |
updateFloat() | 用float值更新指定列 |
updatelLong() | 用指定的long值更新指定列 |
updateString() | 用指定的String值更新指定列 |
updateObject() | 用Object值更新指定列 |
updateNull() | 将指定的列值修改为NULL |
updateDate() | 用指定的date值更新指定列 |
updateDouble() | 用指定的double值更新指定列 |
getrow() | 查看当前行的索引号 |
insertRow() | 将插入行的内容插入到数据库 |
updateRow() | 将当前行的内容同步到数据库 |
deleteRow() | 删除当前行,但并不同步到数据库中,而是在执行close()方法后同步到数据库 |