工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

JDBC 面接の重要な 50 の質問と専門家による回答 (2026)

JDBC 面接の重要な 50 の質問と専門家による回答 (2026)

JDBC 面接の準備には、データベース接続、パフォーマンス調整、セキュリティのベスト プラクティスを深く理解する必要があります。次の 50 の質問は、採用担当者が優先する中心的な概念と現実世界のシナリオをカバーしています。

👉 無料 PDF ダウンロード:JDBC インタビューの質問と回答

1) JDBC とは何ですか? Java アプリケーションで JDBC が重要なのはなぜですか?

JDBC (Java Database Connectivity) は、Java プログラムがリレーショナル データベースと対話できるようにするコア API です。これにより、SQL の実行、結果処理、トランザクション制御が標準化され、開発者は最小限の変更で MySQL、Oracle、PostgreSQL などを切り替えることができるデータベースに依存しないコードを作成できるようになります。

2) 4 つの JDBC ドライバー タイプとその主な違いは何ですか?

3) JDBC プログラムのライフサイクルの概要を説明します。

<オル>
  • ドライバーをロードします:Class.forName("com.mysql.cj.jdbc.Driver")
  • Connection を確立します DriverManager 経由 または DataSource .
  • Statement を作成します 、PreparedStatement 、または CallableStatement .
  • SQL (クエリ、更新、またはプロシージャ) を実行します。
  • ResultSet を処理します 該当する場合。
  • すべてのリソースを閉じます (try‑with‑resources を推奨します) ).
  • 4) Statement、PreparedStatement、または CallableStatement をいつ使用する必要がありますか?

    5) JDBC でトランザクションをどのように管理しますか?

    <オル>
  • 自動コミットを無効にする:conn.setAutoCommit(false)
  • 複数のステートメントを実行します。
  • 成功した場合、conn.commit();失敗した場合、conn.rollback() .
  • このパターンは、資金移動などのアトミックな操作に使用します。

    6) JDBC 接続プーリングの長所と短所は何ですか?

    HikariCP や Apache DBCP などのフレームワークは業界標準です。

    7)execute()、executeQuery()、およびexecuteUpdate()を区別します。

    8) JDBC のパフォーマンスを向上させる戦略は何ですか?

    9) JDBC でのバッチ更新について説明します。

    PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES(?,?)");
    for(int i=1;i<=1000;i++){
      ps.setInt(1,i);
      ps.setString(2,"Name"+i);
      ps.addBatch();
    }
    ps.executeBatch();

    往復を削減し、スループットを向上させます。

    10) ResultSet はどのような役割を果たしますか?

    ResultSet はクエリ結果を保持します。作成フラグに応じて、前方のみ、スクロール可能、または更新可能にすることができます。

    11) JDBC と ODBC を比較します。

    12) JDBC アーキテクチャ コンポーネントを特定します。

    <オル>
  • JDBC API (接続、ステートメント、結果セット)。
  • ドライバー マネージャー (ドライバーを登録します)。
  • ドライバー実装 (Type1~4)。
  • データベース バックエンド。
  • 13) ResultSetMetaData と DatabaseMetaData について説明します。

    14) セーブポイントの使用方法は?

    conn.setAutoCommit(false);
    Savepoint sp = conn.setSavepoint("sp1");
    // operations
    conn.rollback(sp); // partial rollback
    conn.commit();

    15) RowSet とそのバリアントを定義します。

    16) JDBC は SQL 例外をどのように処理しますか?

    SQLException は getErrorCode() を提供します 、getSQLState() 、および getMessage() 。失敗時には必ずログを記録してロールバックしてください。

    17) バッチ処理とは何ですか?

    複数の DML ステートメントを 1 つのラウンドトリップにグループ化します。 addBatch() を使用してください と executeBatch() .

    18) ステートメント タイプを再度リストします。

    19) 効率的な接続管理。

    DataSource を優先します 接続プーリングを使用します。 try‑with‑resources を使用してください 自動クリーンアップ用。

    20) JDBC ステートメントと休止状態セッション。

    21) 自動生成されたキーを取得します。

    PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
    ps.executeUpdate();
    ResultSet rs = ps.getGeneratedKeys();

    22) BLOB および CLOB の処理。

    23) ResultSet をスクロール/更新可能にします。

    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE");
    rs.absolute(3);
    rs.updateString("name", "UpdatedName");
    rs.updateRow();

    24) データソースとドライバーマネージャー。

    25) PreparedStatement によるバッチ処理。

    for(int i=1;i<=5;i++){
      ps.setInt(1,i);
      ps.setString(2,"Student"+i);
      ps.addBatch();
    }
    ps.executeBatch();

    26) DatabaseMetaData の使用。

    DatabaseMetaData dbmd = conn.getMetaData();
    System.out.println("DB: " + dbmd.getDatabaseProductName());

    27) 実行バリアントの要約。

    28) JDBC リソースを閉じます。

    try (Connection c = ds.getConnection();
         Statement s = c.createStatement();
         ResultSet rs = s.executeQuery("SELECT * FROM EMPLOYEE")) {
      while(rs.next()){ /* process */ }
    }

    29) 一般的なパフォーマンスの最適化。

    30) ストアド プロシージャの呼び出し。

    CallableStatement cs = conn.prepareCall("{call getEmployeeSalary(?)}");
    cs.setInt(1,101);
    ResultSet rs = cs.executeQuery();

    31) JDBC 接続プーリングの内部。

    初期化時に、プールは固定の接続セットを作成します。リクエストは接続を借用します。使用後にそれを返し、リソースをメモリ内に保持します。

    32) HikariCP を構成します。

    HikariConfig cfg = new HikariConfig();
    cfg.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
    cfg.setUsername("root");
    cfg.setPassword("pw");
    cfg.setMaximumPoolSize(10);
    HikariDataSource ds = new HikariDataSource(cfg);

    33) DriverManager と DataSource。

    34) 一般的な「適切なドライバーが見つかりません」の原因。

    35) SQL インジェクションを防止します。

    36) JDBC と ORM (休止状態)。

    37) SQL クエリのログ記録。

    38) JDBC による安全なマルチスレッド。

    39) Spring / Spring Boot の JDBC。

    春の JdbcTemplate ボイラープレート、例外変換、接続プーリングを自動的に処理します。

    40) JDBC 接続の状態。

    41) ドライバーの種類の要約。

    42) トランザクション分離レベル。

    43) 分散 (XA) トランザクション。

    44) JDBC パフォーマンスのプロファイリング。

    45) JDBC メモリ リークの防止。

    46) マイクロサービス/クラウド用の JDBC。

    47) 接続障害の適切な処理。

    for(int i=0;i<3;i++){
      try(Connection c=ds.getConnection()){ break; }
      catch(SQLTransientConnectionException e){ Thread.sleep(1000*(i+1)); }
    }

    48) コミット、ロールバック、セーブポイントの違い。

    49) JDBC メタデータの有用性。

    50) エンタープライズ JDBC のベスト プラクティス。

    <オル>
  • DataSource を使用します プーリングを使用します。
  • PreparedStatement を優先します .
  • トランザクションを適切に分離して処理する
  • バッチ操作とページネーション
  • クエリをログに記録し、監視します。
  • 例外と再試行を適切に処理する
  • 🔍 JDBC 面接でよくある質問と現実世界のシナリオと戦略的な回答

    以下は、面接官が期待する内容と強力な回答例を含む、慎重に作成された JDBC 面接の質問 10 個です。

    1) JDBC とは何ですか?なぜ重要ですか?

    期待される答え: JDBC はデータベース アクセス用の Java API です。 SQL の実行、結果処理、トランザクションを抽象化し、データベースに依存しないコードを可能にします。

    2) JDBC ドライバーの種類について説明します。

    期待される答え: 4 種類:JDBC‑ODBC ブリッジ、ネイティブ API、ネットワーク プロトコル、シン ドライバー。現在では Type4 が最も一般的です。

    3) 接続を効率的に管理するにはどうすればよいですか?

    期待される答え: HikariCP などの接続プールを使用します。リクエストごとに接続を開いたり閉じたりすることは避けてください。

    4) Statement、PreparedStatement、CallableStatement を区別します。

    期待される答え: ステートメント - 静的 SQL。 PreparedStatement – パラメータ化されており、インジェクションを防止します。 CallableStatement – ストアド プロシージャ。

    5) 実行した JDBC パフォーマンスの最適化について説明します。

    期待される答え: 文字列連結を PreparedStatement に置き換え、プーリングを導入し、バッチ挿入を使用しました。応答時間が 40% 短縮されました。

    6) SQL インジェクションを防ぐにはどうすればよいですか?

    期待される答え: PreparedStatement を使用します。入力を検証します。 DB 権限を制限します。

    7) JDBC 接続エラーのトラブルシューティングを行います。

    期待される答え: URL、認証情報、ネットワーク、ドライバー jar を確認します。ログを確認する。誤って設定されたポートを修正してください。

    8) JDBC でトランザクションを管理します。

    期待される答え: 自動コミットを無効にし、操作を実行し、結果に基づいてコミットまたはロールバックします。 ACID 準拠を保証します。

    9) JDBC を使用して DB の困難な問題を解決します。

    期待される答え: 一括挿入のバッチ処理を実装し、時間を数分から数秒に短縮しました。

    10) 厳しい期限内で JDBC の機能強化を優先します。

    期待される答え: 影響を評価し、明確にコミュニケーションし、影響の大きい項目に最初に取り組み、SLA を満たすために協力します。

    Java

    1. JDK vs JRE vs JVM:主な違い
    2. Java break ステートメント
    3. Java-ポリモーフィズム
    4. Java シングルトン クラス
    5. Java ロギング
    6. Java 9 - 強化された @Deprecated アノテーション
    7. Spring チュートリアル:Spring Framework とは何か &インストール方法
    8. Java マルチスレッドに関するインタビューのトップ 40 の質問と回答 – 2026 年版
    9. Java キュー インターフェイス
    10. Java メソッドのオーバーライド
    11. Java PrintWriter クラス