目次へ

2. SQL文の実行

2.1. insert, update, delete文の実行

SQLの「insert」「update」「delete」文の実行でも、「java.sql.Statement」オブジェクトを使用します。実行には「executeQuery」メソッドではなく、「executeUpdate」メソッドを使用します。

import java.sql.*;
  
public class InsertUpdateDeleteSample{
  public static void main(String args[]) throws ClassNotFoundException,SQLException{
    Class.forName("org.postgresql.Driver");
    Connection connection=DriverManager.getConnection("jdbc:postgresql:Training","postgres","");
    
    Statement statement=connection.createStatement();
    String sql="insert into product values(101,'Viz','Compact car',100);"
    statement.executeUpdate(sql);
    
    sql="update product set price=price*1.1 where price>=200;"
    int result=statement.executeUpdate(sql);
    System.out.println(result+" products are changed.");
    
    sql="delete product where price<=100;";
    int result=statement.executeUpdate(sql);
    System.out.println(result+" products are deleted.");
    
    connection.close();
  }
}

「executeUpdate」メソッドで実行されるSQL文は、「select」文ではありませんので結果の表を返しません。返り値には「java.sql.ResultSet」オブジェクトではなく、実行によって更新されたテーブルの行数を返します。何も返さないSQL文を実行した場合には「0」を返します。

最後の「java.sql.Connection」クラスの「close」メソッドは、データベースへの接続を解除するメソッドです。このメソッドを明示的に呼び出さなくても、「java.sql.Connection」オブジェクトがガベージコレクトされるときに、自動的にデータベースへの接続は解除されます。

(実習課題1)

1章の実習課題1のプログラムを改良しなさい。

  • ウィンドウに「更新」ボタンを追加する事。
  • テーブルの各セルは編集可能な状態にし、「更新」ボタンを押すと、各セルを編集した結果がデータベースに反映されるようにする事。
  • 編集した行に関するSQL文を発行するように工夫する事。
  • トランザクション処理は考慮しなくて良い。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp