練習問題
3.4 練習問題
本章で習った内容を元に練習問題を解いてください。
問1 次の設問①~⑤について○か×で答えなさい。
設問
① MariaDBのオートコミット機能は初期状態では無効になっている。
② トランザクション処理中は、何度SQL文を実行してもデータには反映されない。
③ PreparedStatement を使う場合、SQLのパラメータ変数には「$」マークを使用する。
④ パラメータ変数に値をセットする場合、セットする値の型によってメソッドが異なる。
⑤ 基準となるSQLが複数ある場合、PreparedStatementは利用できない。
問2 次のソースコードの①~⑤の空欄に入るものを選択肢から選んで答えなさい。
選択肢
false sql commit() rollback() createStatement()
package jp.co.f1.jdbc.ch03exercise; import java.sql.*; public class Practice0301 { private static String RDB_DRIVE="org.mariadb.jdbc.Driver"; private static String URL="jdbc:mariadb://localhost/practice_db"; private static String USER="root"; private static String PASSWD="root123"; public static void main(String[] args) { String sql = null; int num = 0 ; Connection con = null; Statement smt = null; try { Class.forName(RDB_DRIVE); con = DriverManager.getConnection(URL,USER,PASSWD); con.setAutoCommit( ① ); smt = con. ② ; sql = "DELETE FROM practice_table WHERE id = "00001"; num = smt.executeUpdate( ③ ); System.out.println("\nSQL発行:" + num + "件のレコードを削除しました。"); System.out.println("\nコミット処理を実施しました。"); con. ④ ; } catch (Exception e) { System.out.println("JDBCデータベース接続エラー" + e); if (con != null) { try { System.out.println("\nロールバック処理を実施しました。"); con. ⑤ ; } catch (SQLException ignore) { } } } finally { try { if (smt != null) { smt.close(); } if (con != null) { con.close(); } } catch (SQLException ignore) { } } } }
問3 次のソースコードの①~④の空欄に入るものを選択肢から選んで答えなさい。
選択肢
prepareStatement(sql) ? 1 PreparedStatement
package jp.co.f1.jdbc.ch03exercise; import java.sql.*; public class Practice0302 { private static String RDB_DRIVE="org.mariadb.jdbc.Driver"; private static String URL="jdbc:mariadb://localhost/practice_db"; private static String USER="root"; private static String PASSWD="root123"; public static void main(String[] args) { String sql = null; int num = 0 ; Connection con = null; ① ps = null; try { Class.forName(RDB_DRIVE); con = DriverManager.getConnection(URL,USER,PASSWD); sql = "DELETE FROM practice_table WHERE id = ② ; ps = con. ③ ; ps.setString( ④ , "00001"); num = ps.executeUpdate(); System.out.println("\n" + num + "件データを削除しました。\n"); }catch(Exception e){ System.out.println("JDBCデータベース接続エラー"); }finally{ if(ps != null){ try{ps.close();}catch(SQLException ignore){} } if(con != null){ try{con.close();}catch(SQLException ignore){} } } } }