Statementオブジェクト
Statementインタフェースは、SQL文などを使ってデータベースに問い合わせをするためのクラスです。Connectionオブジェクトから取得して利用します。
■ 主なメソッド
メソッド名
|
概要
|
close
|
データベースの接続を閉じる
|
execute
|
複数の結果を返す可能性のあるSQL文を実行する
|
executeQuery
|
SELECT文の実行結果を表すResultSetオブジェクトを返す
|
executeUpdate
|
INSERT、UPDATE、DELETE文を実行する
|
isClose
|
このオブジェクトがクローズされているかどうかを取得する
|
Statementの主なメソッド
○ プロジェクト
プロジェクトを作成して確認してみましょう。
サンプルダウンロード
〇 作成の準備
ConnectionTestプロジェクトをコピーして作成してください。
○ プログラム
mainメソッドに次のように記述してください。
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.Statement;
- public class ConnectionTest {
- public static void main(String[] args) {
- try{
- //JDBCドライバークラスを指定する
- String drivername = "com.mysql.jdbc.Driver";
- //データベースを指定する
- String url = "jdbc:mysql://localhost:3306/books?characterEncoding=utf8";
- //ユーザー名を指定する
- String username = "root";
- //パスワードを指定する
- String password = "";
- //指定したドライバークラスを読み込む
- Class.forName(drivername);
- //データベースに接続する
- Connection con = DriverManager.getConnection(url, username, password);
- //追加する情報を入力する
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("登録するユーザー情報を入力してください。");
- System.out.print("ID:");
- int id = Integer.parseInt(br.readLine());
- System.out.print("ユーザー名:");
- String uname = br.readLine();
- System.out.print("パスワード:");
- String passwd = br.readLine();
- System.out.print("氏名:");
- String name = br.readLine();
- //入力した情報をもとにSQL文を作成する
- String sql = "INSERT INTO Users VALUES(" + id + ", '" + uname + "', '" + passwd + "', '" + name + "')";
- //Statementオブジェクトを取得する
- Statement st = con.createStatement();
- //SQL文を実行する
- int ret = st.executeUpdate(sql);
- //変更のあった行数を表示する
- System.out.println("変更のあった件数:" + ret);
- //データベースを切断する
- con.close();
- }catch(Exception e){
- //例外の状態を出力する
- e.printStackTrace();
- }
- }
- }
○ 実行結果
登録するユーザー情報を入力してください。
ID:4
ユーザー名:tanaka
パスワード:tpass
氏名:田中
変更のあった件数:1
○ 解説
今回はUsersテーブルにデータを追加するプログラムです。32~39行目では、追加するデータを入力しています。入力したデータをもとに42行目でSQL文を作成しています。今回はレコードを追加するのでINSERT文を作成します。このようにJavaプログラムの中でSQL文は文字列として扱います。
45行目でStatementオブジェクトを取得しています。ConnectionオブジェクトのcreateStatementメソッドを使って取得します。
48行目では、SQL文を実行しています。excecuteUpdateメソッドは影響のあった行数を返すので、それをret変数に格納し、51行目で表示しています。一連の処理が終わったら54行目にもあるようにConnectionオブジェクトのcloseメソッドを使ってデータベースへの接続を閉じます。
データベースとStatementオブジェクトの関係
○ データベースの確認
phpMyAdminでUserテーブルのデータを確認してください。レコードが追加されていることを確認できます。
データベースに追加された
前へ 次へ