• ログインログイン
  • 新規登録新規登録

MENU

JDBCの基礎知識をチェック!JDBCの理解度テスト(1)

連載基礎力チェック!プログラミングテスト一覧

プログラミングスキルの基礎力をチェック!各領域における基礎力をチェックするためのテスト集です。知っていると思っていても、やってみると意外と間違えてしまうことが多いかも!?

本教材は株式会社フルネス様からのご提供になります。プログラミング学習コラム「JDBC」についての1回目のテストです。日々の勉強の成果がどれだけ反映されるか試してみましょう。

問 1  以下のJDBCドライバについての説明から正しいものをすべて選んでください。

  1. JDBCドライバはタイプ1からタイプ4の4種に分類される。タイプ4は、全てJavaで記述されているため、特定のプラットフォームに依存しない。
  2. JDBCドライバは、著名なデータベースであれば必ずと言っていいほど提供されている。
  3. 全てのJDBCドライバは、JDBCに対する呼び出しをデータベース独自のネットワークプロトコルに変換し、それを中間サーバに転送する。
  4. 現在のところ JDBCドライバを提供しているデータベースは、PostgreSQL、MySQL、Oracle のみである。

解答をみる

解答 1,2

問 2 データベースやファイル、外部アプリケーション、LDAPなど、メモリ外にあるデータへのアクセスを管理するオブジェクトを1つ選んでください。

  1. DATA
  2. BEAN
  3. ODBC
  4. DAO

解答をみる

解答 4

問 3  以下のプログラムでデータベースにデータを反映させたい。13行目の[A]、[B]の組み合わせとして正しいものを1つ選んでください。

※ドライバのロード、データベースへの接続は正常に動作するものとする。

■TransactionSample.java

import java.sql.*;

public class TransactionSample{
 public static void main(String args[]) throws Exception{
   // ※ドライバのロード
  // ※データベースへの接続

  connection.setAutoCommit(false);
  Statement statement=connection.createStatement();
   String sql="insert into product values(101,'Viz','compact car',100);";
   statement.executeUpdate(sql);

   [A].[B]();
  }
}
  1. [A] statement、[B] rollback
  2. [A] connection、[B] commit
  3. [A] connection、[B] rollback
  4. [A] statemtnt、[B] commit

解答をみる

解答 2

問 4  以下のプログラムについての説明として正しいものを1つ選んでください。

※ドライバのロード、データベースへの接続は正常に動作するものとする。

■TransactionSample.java

import java.sql.*;

public class TransactionSample{
 public static void main(String args[]) throws Exception{
  // ※ドライバのロード
  // ※データベースへの接続

  Statement statement=connection.createStatement();
  String sql="insert into product values(101,'Fits',100);";
  statement.executeUpdate(sql);

  connection.rollback();
 }
}
  1. トランザクションのデフォルト設定は、自動コミットがオンとなっているため、12行目のrollback処理に関係なく、10行目のSQL実行はデータベースに反映される。
  2. トランザクション設定は、データベースの設定次第であるため、12行目のロールバック処理が有効か無効かはプログラムだけでは判断できない。
  3. java.sql.Connectionインタフェースには、rollback メソッドはないため、12行目でコンパイルエラーとなる。
  4. 12行目でロールバックされるため、10行目のSQL実行はデータベースに反映されずアプリケーションは終了する。

解答をみる

解答 1

問 5 java.sql.Statement インタフェースと java.sql.PreparedStatement インタフェースの違いについて正しく説明しているものをすべて選んでください。

  1. PreparedStatement のみがバッチ処理を実行できる。
  2. いかなる場合もPreparedStatementの方が高速に動作する。
  3. PreparedStatement では、プレースホルダを使ってパラメータを与えることができる。
  4. PreparedStatement インタフェース は Statement インタフェースを extends している。

解答をみる

解答 3,4

問 6 以下のうち、java.sql.PreparedStatement を使用することで回避できる脆弱性の種類を1つ選んでください。

  1. クロスサイトスクリプティング
  2. SQLインジェクション
  3. OSコマンドインジェクション
  4. セッションハイジャック

解答をみる

解答 2

問 7 データベースとのコネクションを得るために、DriverManagerクラスの getConnection メソッドを呼び出す。この際の第1引数として渡すデータベースのURLについて、正しく説明しているものを1つ選んでください。

  1. データベースのURLの書式は、「jdbc:oracle:thin:@ホスト名:ポート番号:DB名」が標準となっており、oracleの部分を変更することであらゆるデータベースに対応するこができる。
  2. データベースのURLの記述書式はドライバに依存するものであり、全てのデータベースに対応する一般的な書式があるわけではない。
  3. データベースのURLの書式は、「jdbc:postgresql:[//ホスト名[:ポート番号]/]DB名」が標準となっており、postgresql の部分を変更することであらゆるデータベースに対応することができる。

解答をみる

解答 2

問 8 分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。このとき、トランザクションのコミット制御に関する記述のうち、適切なものを1つ選んでください。

  1. 集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散データベースのコミットを行っても、サイト間のデータベースの一貫性は保証できる。
  2. 2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
  3. 2相コミットでは、すべてのサブトランザクションからコミット了承応答が届いても、必ずしもすべてのサブトランザクションをコミットするとは限らない。
  4. 2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。

解答をみる

解答 4

問 9 以下のうち、JDBCを正しく説明しているものを1つ選んでください。

  1. RDBMSにおいて、データの操作や定義を行うためのデータベース言語である。
  2. Javaプログラムとデータベースを接続する際のAPIである。
  3. データベースを操作するためのjar ファイルもしくはクラスであり、Type-1からType-4まである。

解答をみる

解答 2

問 10 JDBCを使いデータベースにアクセスするにあたって、JDBCドライバをロードする必要がある。この際、使用するメソッドを1つ選んでください。

  1. java.sql.Driver インタフェースの getConnection メソッド
  2. java.sql.DriverManager クラスの getConnection メソッド
  3. java.sql.DriverManager クラスの loadDriver メソッド
  4. java.lang.Class クラスの forName メソッド

解答をみる

解答 4

 

本テストのアーカイブは以下からご覧頂けますので、是非他のテストも合わせてご覧頂ければと思います。

オススメ記事一覧

もっと見る
完全無料!

1で登録完了!

エンジニアの仕事・年収や選考ノウハウ記事が読めるほか、
会員にはプログラミング講習やES・面接対策などリアルな無料サポートも充実。
ここだけの求人情報も多数。

今すぐ新規会員登録
Page Top