Javaちょこっとリファレンス
HOME > SELECT文サンプル

SELECT文サンプル

JDBCを使用してデータベースからデータを検索(SELECT)するサンプルです。
以下のサンプルでは、Oracleデータベースを対象としています。

サンプルコード

接続するデータベース情報は以下の通りとします。

<DB情報>
 ・データベース:オラクル
 ・IP:127.0.0.1(localhost)
 ・ポート番号:1521
 ・SID:testdb
 ・ログインID:user01
 ・ログインパスワード:password

<対象テーブル>
 ユーザマスタ

「USER_MASTER」テーブルを検索(SELECT)するサンプル
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBSelectSample {

    public static void main(String[] args) throws Exception{

        //変数定義
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        //DB接続情報を設定する
        String path = "jdbc:oracle:thin:@127.0.0.1:1521:testdb";  //接続パス
        String id = "user01";    //ログインID
        String pw = "password";  //ログインパスワード

        //SQL文を定義する
        String sql = "SELECT * FROM user_master WHERE no >= ?";

        try{
            //JDBCドライバをロードする
            Class.forName("oracle.jdbc.driver.OracleDriver");

            //DBへのコネクションを作成する
            conn = DriverManager.getConnection(path, id, pw);

            //実行するSQL文とパラメータを指定する
            ps = conn.prepareStatement(sql);
            ps.setString(1, "2");

            //SELECTを実行する
            rs = ps.executeQuery();

            //こんなふうにカラム数なども取得できちゃう
            int colCount = rs.getMetaData().getColumnCount();
            System.out.println("取得したカラム数:" + colCount);

            //取得した結果を全件出力する
            while(rs.next()){
                System.out.print(rs.getInt("NO"));
                System.out.print("/" + rs.getString("NAME"));
                System.out.print("/" + rs.getString("ADDRESS"));
                System.out.print("/" + rs.getString("TEL"));
                System.out.println();
            }

        }catch(Exception ex){
            //例外発生時の処理
            ex.printStackTrace();  //エラー内容をコンソールに出力する

        }finally{
            //クローズ処理
            if(rs != null) rs.close();
            if(ps != null) ps.close();
            if(conn != null) conn.close();
        }

    }

}

実行結果
C:\>java -cp ./;ojdbc14.jar DBSelectSample 取得したカラム数:4 2/山田次郎/大阪府大阪市/06-9999-9999 3/山田三郎/愛知県名古屋市/054-999-9999

事前にオラクルのJDBCドライバを用意しておく必要があります。
(ここの例では「ojdbc14.jar」)

主要メソッド

【java.sql.PreparedStatementクラスの主要メソッド】
戻値型メソッド説明
voidsetString(int a, String b)a番目の「?」にbをString型でセットする
voidsetInt(int a, int b)a番目の「?」にbをint型でセットする
voidsetLong(int a, long b)a番目の「?」にbをlong型でセットする
voidsetFloat(int a, float b)a番目の「?」にbをfloat型でセットする
voidsetDouble(int a, double b)a番目の「?」にbをdouble型でセットする
voidsetDate(int a, Date b)a番目の「?」にbをjava.sql.Date型でセットする
voidsetBoolean(int a, boolean b)a番目の「?」にbをboolean型でセットする
voidclearParameters()全てのパラメータをクリアする
ResultSetexecuteQuery()SELECT文を実行する
intexecuteUpdate()UPDATE, INSERT, DELETE,ストアドを実行する
【java.sql.ResultSetクラスの主要メソッド】
戻値型メソッド説明
StringgetString(int i)レコードのi番目の値をString型で取得する
intgetInt(int i)レコードのi番目の値をint型で取得する
doublegetDouble(int i)レコードのi番目の値をdouble型で取得する
DategetDate(int i)レコードのi番目の値をjava.sql.Date型で取得する
booleangetBoolean(int i)レコードのi番目の値をboolean型で取得する
voidclose()ResultSetを解放する
intgetRow()現在の行番号を返す
voidnext()カーソルを1つ進める
voidprevious()カーソルを1つ戻す
booleanfirst()カーソルを先頭行に位置付ける
booleanlast()カーソルを最終行に位置付ける
booleanabsolute(int i)カーソルをi行目に位置付ける
booleanisLast()カーソルが先頭行にあるかどうかを返す
booleanisFirst()カーソルが最終行にあるかどうかを返す
booleanisClosed()カーソルがクローズされているかどうかを返す
ResultSet
MetaData
getMetaData()ResultSetMetaDataを取得する
このメタデータから検索結果に関するいろいろな情報が取得できる
【java.sql.ResultSetMetaDataクラスの主要メソッド】
戻値型メソッド説明
intgetColumnCount()カラムの数を返す
StringgetColumnName(int i)i番目のカラム名を返す
intgetColumnDisplaySize(int i)i番目のカラムのサイズを返す
intgetColumnType(int i)i番目のカラムの型を返す
(java.sql.Types)

データベースカテゴリ

HOMEへ戻る TOPへ戻る