基本情報技術者 2011年 春期 午前(科目A) 問32
問題文
Javaのアプリケーションプログラムがデータベースにアクセスするための標準的なAPI (Application Program Interface)はどれか。
選択肢
ア:HTML
イ:Java VM
ウ:JDBC(正解)
エ:SQL
🔒 解説は解答すると表示されます
JDBCによるデータベース接続【午前解説】
正解の理由
選択肢の中で、Javaプログラムからデータベースにアクセスする「標準的なAPI」を示すのはウ(JDBC)です。
JDBC(Java Database Connectivity)はJava標準のAPIで、DriverManager/Connection/Statement/PreparedStatement/ResultSetなどのインタフェースを通じて、データベースへの接続、SQLの送信、結果の取得といった操作を行います。JDBCドライバを用意することで、様々なDB(Oracle、MySQL、PostgreSQLなど)に同一のAPIでアクセス可能です。
JDBC(Java Database Connectivity)はJava標準のAPIで、DriverManager/Connection/Statement/PreparedStatement/ResultSetなどのインタフェースを通じて、データベースへの接続、SQLの送信、結果の取得といった操作を行います。JDBCドライバを用意することで、様々なDB(Oracle、MySQL、PostgreSQLなど)に同一のAPIでアクセス可能です。
解法ステップ
- 問題文のキーワード「Java」「データベース」「標準的なAPI」を確認する。
- 選択肢を役割で比較する(HTML=マークアップ、JVM=実行環境、SQL=言語、JDBC=API)。
- APIとしての機能(接続、SQL送信、結果取得)を満たすものを選ぶ。
- 該当するのはJDBCなのでウを選択する。
選択肢別の誤答解説
- ア: HTML
- 誤り。HTMLはハイパーテキストマークアップ言語で、Webページ記述用。DBアクセスAPIではありません。
- イ: Java VM
- 誤り。JVM(Java Virtual Machine)はJavaバイトコードを実行する仮想マシンで、DB操作のためのAPIを提供するものではありません。
- ウ: JDBC
- 正解。JDBCはJava用のデータベース接続APIで、接続管理・SQL実行・結果取得のための標準的なインタフェースを提供します。
- エ: SQL
- 誤り。SQLはデータベース操作のための言語(問い合わせ文)であり、JavaからSQLを送るためのAPIではありません。
よくある誤解
- 「SQL自体がAPIだ」と考える誤解:SQLはデータ操作言語であり、Java側からSQLを送るためのインタフェースがJDBCです。
- 「Java VMがDBアクセスAPIだ」と思う誤解:JVMはバイトコードを実行する環境であり、DB接続機能を提供するAPIではありません。
- 「JDBCとJPA/ORMを同じものとみなす誤解」:JPAやHibernateは上位レイヤのORMで、内部的にJDBCを使ってDBとやり取りします。
補足コラム
JDBCの基本的な流れは「ドライバの用意 → Connection取得 → PreparedStatement/StatementでSQL実行 → ResultSetで取得 → リソース解放」です。JDBC URLやドライバ(jar)がクラスパスに必要です。簡単な接続例を示します。
import java.sql.*;
public class Example {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "user";
String pass = "password";
String sql = "SELECT id, name FROM users WHERE active = ?";
try (Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setBoolean(1, true);
try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
System.out.println(rs.getInt("id") + ": " + rs.getString("name"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
ポイント:
- PreparedStatementはSQLインジェクション対策やパラメータの扱いで推奨されます。
- JDBCは低レイヤのAPIなので、ORM(JPA/Hibernate等)はより高レベルの抽象化を提供し、内部でJDBCを利用します。
FAQ
Q1: JDBCはJavaの標準ライブラリに含まれますか?
A1: java.sqlやjavax.sqlのインタフェースは標準APIに含まれますが、各データベース用のJDBCドライバはベンダー提供のライブラリをプロジェクトに追加する必要があります。
A1: java.sqlやjavax.sqlのインタフェースは標準APIに含まれますが、各データベース用のJDBCドライバはベンダー提供のライブラリをプロジェクトに追加する必要があります。
Q2: JDBCとJPAはどちらを使えばよいですか?
A2: 小規模で単純な処理や細かいSQL制御が必要ならJDBC、エンティティマッピングや生産性・保守性を優先するならJPA/ORMがおすすめです。両者は併用可能です。
A2: 小規模で単純な処理や細かいSQL制御が必要ならJDBC、エンティティマッピングや生産性・保守性を優先するならJPA/ORMがおすすめです。両者は併用可能です。
Q3: SQLだけ知っていればJDBCは使えますか?
A3: SQLの知識は必要ですが、JDBC特有の接続管理・例外処理・リソース解放などの扱いも学ぶ必要があります。
A3: SQLの知識は必要ですが、JDBC特有の接続管理・例外処理・リソース解放などの扱いも学ぶ必要があります。
関連キーワード: JDBC、JDBCドライバ、DriverManager、Connection、PreparedStatement、ResultSet、SQL、ORM、データベース、Java

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

