Statement クラス

[内容]

  SQL 文を実行し,作成された結果を得るために使用されます

[主なメソッド]

[使用例]

  1. プログラム例は,サーバ cs-www にある MySQL のデータベースへ JDBC を使用して接続し,データベースを作成,選択,および,削除した例です.

  2. プログラム例は,サーバ cs-www にある MySQL のデータベースへ JDBC を使用して接続し,テーブルを作成した例です.このプログラムを実行すると以下のような出力が得られます.
    Tables_in_base
    		 gakuseki
    Field, Type, Null, Key, Default, Extra
    		 No, int(9), , PRI, 0,
    		 name, varchar(50), , , ,
    		 math, int(3), YES, , null,
    			

  3. プログラム例は,サーバ cs-www にある MySQL のデータベースへ JDBC を使用して接続し,作成したテーブルにデータを読み込ませた例です.テーブルへデータを読み込む方法として,二つの方法があります.一つは,ファイルから読み込む方法です.ファイルから読み込む場合は,1 行に 1 レコードの形式でタブで区切った値を記述したテキストファイルを作成します.このプログラムでは,次に示す2つのファイル「test1.txt」と「test2.txt」を使用しています.ファイル「test2.txt」には,ファイル「test1.txt」と同じキーのデータが含まれていますが,このデータは無視されます.
    test1.txt
        111111111	山田	10
        555555555	佐藤	50
    test2.txt
        222222222	鈴木	20
        333333333	山本	30
        111111111	山田	10
    			
      あと一つの方法は,INSERT コマンドを利用する方法です.INSERT コマンドの場合は,既にあるデータと同じキーのデータを入力するとエラーになってしまいます.このプログラムを実行すると以下のような出力が得られます.
    No, name, math
         111111111, 山田, 10
         555555555, 佐藤, 50
    No, name, math
         111111111, 山田, 10
         555555555, 佐藤, 50
         222222222, 鈴木, 20
         333333333, 山本, 30
    No, name, math
         111111111, 山田, 10
         555555555, 佐藤, 50
         222222222, 鈴木, 20
         333333333, 山本, 30
         444444444, 杉山, 40
    			

  4. プログラム例は,サーバ cs-www にある MySQL のデータベースへ JDBC を使用して接続し,テーブル内のレコードの削除,データの修正,および,レコードの挿入を行った例です.このような処置を行う場合,以下の点に注意してください.

    1. 「USE データベース名」の効果がないので,実際に使用するデータベースで接続する必要がある.
      Con = DriverManager.getConnection("jdbc:mysql://cs-www/base?" +
      "useUnicode=true&characterEncoding=sjis", "xxxxx", "*****");
    2. Statementオブジェクトの定義方法(コンストラクタの引数)
      Statement SQL = Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
      ResultSet.CONCUR_UPDATABLE);
    削除前:
    No, name, math
         111111111, 山田, 10
         555555555, 佐藤, 50
         222222222, 鈴木, 20
         333333333, 山本, 30
         444444444, 杉山, 40
    削除後:
    No, name, math
         111111111, 山田, 10
         555555555, 佐藤, 50
         444444444, 杉山, 40
    修正,挿入後:
    No, name, math
         111111111, 山田, 100
         555555555, 佐藤, 50
         999999999, 小川, 88
         444444444, 杉山, 90
    			

  5. プログラム例は,サーバ cs-www にある MySQL のデータベースへ JDBC を使用して接続し,テーブル内のカラムの追加,および,削除を行った例です.このような処置を行う場合,以下の点に注意してください.

    1. 「USE データベース名」の効果がないので,実際に使用するデータベースで接続する必要がある.
      Con = DriverManager.getConnection("jdbc:mysql://cs-www/base?" +
      "useUnicode=true&characterEncoding=sjis", "xxxxx", "*****");
    2. Statementオブジェクトの定義方法(コンストラクタの引数)
      Statement SQL = Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
      ResultSet.CONCUR_UPDATABLE);
    追加前:
    No, name, math
         222222222, 鈴木, 20
         333333333, 山本, 30
         111111111, 山田, 10
    カラムの追加後:
    No, name, math
         222222222, 鈴木, null, 20
         333333333, 山本, null, 30
         111111111, 山田, null, 10
    カラムの削除後:
    No, name, math
         222222222, 鈴木, 20
         333333333, 山本, 30
         111111111, 山田, 10
    			

[参照]

Connection, DriverManager, ResultSet, PreparedStatement, ResultSetMetaData

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引