コツコツ学習ブログ

プログラマのweb上のメモ的なもの

検索系 SQL文の送信

package sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {

        //JDBCドライバのロード(h2データベース)
        try {
            Class.forName("org.h2.Driver");
        } catch (ClassNotFoundException e) {
            throw new IllegalStateException("ドライバのロードに失敗しました");
        }
        //java.sql.connectionのインスタンスを取得
        Connection con = null;
        try {
            //DBへの接続
            con = DriverManager.getConnection("jdbc:h2:~/mydb", "sa", "");
            //送信すべきSQLの雛形を準備
            PreparedStatement pstmt = con.prepareStatement("SELECT * FROM MONSTERS WHERE HP >= ?");
            pstmt.setInt(1, 20); //1番目の?に20を流し込む
            //組み立て終えたSQL文をDBMSに送信する
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.print("現在DBに格納されているモンスターは");
                System.out.println(rs.getString("NAME"));
            }
            //結果表の処理
            rs.close();
            //後片付け
            pstmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //DB接続の切断
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}