MENU

SQLの実行

はじめに 

なぜ、プログラミングでSQLを実行する必要があるのか… 

郵便局のホームページを想像してみてください。 
郵便番号を入力するだけで、途中まで表示されますよね。 
WEB画面で入力された値を元に、プログラミングがデータベースでSQLを実行し、データベースから住所の情報が返ってきてそれをプログラミングが受けとってWEB画面に表示しています。 

WEB画面の裏側には必ずと言っていいほど何かしらのデータベースがあって、それをプログラムで制御しているのです。 

なんとなくイメージできたでしょうか? 
このあたりから、少しずつ難しくなってきますが、SESになるための必須科目なのでめげずに頑張って行きましょう! 

Step1: 主要インタフェース 

例題1 

下記に示すプログラムを作成し、実行しなさい。 (捜査対象になるテーブルは各自で作成してください。今回でいえば、Goodsテーブルを作成すればOKです。カラム名は下記から参考にし、データ型については任意で決めていいです。)

SQLの実行には、Statementインタフェースを使用します。 
このクラスはConnectionクラスの createStatement () メソッドで取得します。 
Statementインタフェースの executeQuery() メソッドは、引数で指定されたSQLをデータベースで実行するメソッドです。 
何のエラーもなく処理が完了すると、SQLの実行結果を格納したResultSetインタフェース型のオブジェクトを返します。 

つまり、ResultSetはSQLインターフェースは実行結果を格納し、その情報も取得できるメソッドも備えているということです。

ResultSetインタフェースのresultSetオブジェクトは初期状態では、最初の行の1つ前に位置していますので、必ず next()メソッド (次の行に移動する) で最初の行に移動してやる必要があります。 

また、next()メソッドは該当する行が存在する場合にのみ true を返します。 

下記のようにwhile文と組み合わせて使うことにより、実行結果を格納した情報を先頭から最後尾まで順に追っていくことができます。 
該当する行の任意の列の取得には、 データのタイプに応じて 「getXXX()」 メソッドを使用します。 

文字列の場合は getString() メソッド、 
整数の場合は getInt() メソッド、 getLong() メソッド、 
日付の場合には getDate() メソッドを使用します。 

Step2: INSERT文、 UPDATE文、 DELETE文の実行 

例題2 

下記に示すプログラムを作成し、 実行しなさい。 

SQLの INSERT文、 UPDATE文、 DELETE文の実行でも、 Statementインタフェースを使用します。 

SELECT文のSQLの実行には executeQuery() メソッドを使用しましたが、 INSERT文、UPDATE文、 DELETE文の場合は、executeUpdate() メソッドを使用します。

目次