練習問題
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){}
}
}
}
}