(同じ利用者による、間の7版が非表示)
1行目: 1行目:
[[java.sql のクラスたち|java.sql]].PreparedStatement [https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html]
[[java.sql のクラスたち|java.sql]].PreparedStatement [https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html]


私はプリコンパイルされたSQL文を作成するインターフェースです。SQL文はプリコンパイルされ、PreparedStatementインスタンスに格納されます。その後、そのインスタンスはこのSQL文を効率的に実行するために繰り返し利用されます。
私はプリコンパイルされたSQL文を作成するインターフェースです。SQL文はプリコンパイルされ、PreparedStatementインスタンスに格納されます。その後、そのインスタンスはこのSQL文を効率的に実行するために再利用されます。


==メソッド==
==メソッド==
15行目: 15行目:
* execute - あらゆる種類のSQL文を実行し是非を返す
* execute - あらゆる種類のSQL文を実行し是非を返す
* executeUpdate - Update系SQL文を実行し変更された行数を返す
* executeUpdate - Update系SQL文を実行し変更された行数を返す
* executeQuery - SELECT文で取り出したデータを[[ResultSet]]インスタンスに格納する


==例==
==例==
  try ([[Connection]] c = DriverManager.getConnection(URL, USER, PASSWD);) {
public static void deleteRow(String date) {
     PreparedStatement ps = c.prepareStatement("DELETE FROM pfmc WHERE date=?")
  try ([[Connection]] cnc = DriverManager.getConnection(URL, USER, PASSWD);) {
     PreparedStatement ps = cnc.prepareStatement("DELETE FROM pfmc WHERE date=?");
     ps.setDate(1, date);
     ps.setDate(1, date);
     int r = ps.executeUpdate();
     int r = ps.executeUpdate();
...
    if (r != 0) {
        System.out.println("Deleted the data.");
    } 
    ps.close();
} catch (Exception e) {
    e.printStackTrace();
}
}

2019年6月28日 (金) 20:07時点における最新版

java.sql.PreparedStatement [1]

私はプリコンパイルされたSQL文を作成するインターフェースです。SQL文はプリコンパイルされ、PreparedStatementインスタンスに格納されます。その後、そのインスタンスはこのSQL文を効率的に実行するために再利用されます。

メソッド

SQLセット

  • setString - 指定パラメータにString値をセットする
  • setInt - 指定パラメータにInt値をセットする
  • setFloat - 指定パラメータにfloat値をセットする
  • setDate - 指定パラメータにjava.sql.Date値をセットする
  • setTime - Calendarインスタンスを使用して指定パラメータにjava.sql.Time値をセットする
  • setNull - 指定パラメータにSQL NULLをセットする

SQL実行

  • execute - あらゆる種類のSQL文を実行し是非を返す
  • executeUpdate - Update系SQL文を実行し変更された行数を返す
  • executeQuery - SELECT文で取り出したデータをResultSetインスタンスに格納する

public static void deleteRow(String date) {
try (Connection cnc = DriverManager.getConnection(URL, USER, PASSWD);) {
    PreparedStatement ps = cnc.prepareStatement("DELETE FROM pfmc WHERE date=?");
    ps.setDate(1, date);
    int r = ps.executeUpdate();
    if (r != 0) {
        System.out.println("Deleted the data.");
    }   
    ps.close();
} catch (Exception e) {
    e.printStackTrace();
}
}