[Java] データベースの検索
- 2011-01-07 Fri 16:34:13
- JDBC
前回、データベースの更新をEclipse上でできるようにしたので、今回はデータベースの検索を勉強します。
ConnectionオブジェクトとStatementオブジェクトを取得するところまでは、更新の場合と同じです。ただ、更新の場合がStatement#executeUpdate()メソッドでSQLを発行するのに対して、検索ではStatement#executeQuery()メソッドでSQLを発行します。
今回新たにインポートしなければならないのは、検索SQLを発行した結果を表すResultSetクラスです。検索結果を処理するには、executeQuery()メソッドにより取得したResultSetオブジェクトを操作することになります。
データベースの初期値は以下のようになっています。

この結果は、
select * from account;
というSQLを実行すれば出力できますが、これをJavaプログラムを使ってEclipseのコンソールに出力するのが今回の課題です。
作成するファイルは、[dbjava]フォルダの中に「DBSelect.java」としてください。
package dbjava;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBSelect {
public static void main(String[] args) throws Exception{
Connection con=null;
Statement smt=null;
ResultSet rs=null;
try{
con=DBManager.testConnection();
smt=con.createStatement();
rs=smt.executeQuery("select * from account"); //(1)
while(rs.next()){ //(2)
System.out.println(
"ID="+rs.getInt("ID")
+", NAME="+rs.getString("NAME")
+", MONEY="+rs.getString("MONEY")
);
}
smt.close();
con.close();
}finally{
if(smt !=null){
try{
smt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(con !=null){
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}
実行結果
ID=1, NAME=太郎, MONEY=5000
ID=2, NAME=次郎, MONEY=1000
ID=3, NAME=三郎, MONEY=1000
解説します。
(1) 検索は、executeQuery()メソッドを利用します。引数にはSQL文が入り、返り値はResultSetオブジェクトです。
(2) 検索結果は、ResultSet#next()メソッドでループ処理します。next()メソッドは、検索結果の行があればtrueを返します。
列のデータは、ResultSet#getXXX()というメソッドで取り出すことができます。列のデータ型がINTEGERで、Java的にはint型の場合はgetInt()メソッドとなり、列のデータがVARCHARで、Java的にはStringで取得するときはgetString()メソッドとなります。
getXXX()メソッドの引数には、列名または列のインデックスを指定します。たとえばID列を取り出すときは、
getInt("ID")
または、
getInt(1)
のような指定をします。
スポンサーサイト
タグ :
Comments: