fc2ブログ

[Java] データベースの検索

  • Posted by: servletmania
  • 2011-01-07 Fri 16:34:13
  • JDBC




前回、データベースの更新をEclipse上でできるようにしたので、今回はデータベースの検索を勉強します。

ConnectionオブジェクトとStatementオブジェクトを取得するところまでは、更新の場合と同じです。ただ、更新の場合がStatement#executeUpdate()メソッドでSQLを発行するのに対して、検索ではStatement#executeQuery()メソッドでSQLを発行します。

今回新たにインポートしなければならないのは、検索SQLを発行した結果を表すResultSetクラスです。検索結果を処理するには、executeQuery()メソッドにより取得したResultSetオブジェクトを操作することになります。

データベースの初期値は以下のようになっています。

DBSelect1

この結果は、
  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)
のような指定をします。

スポンサーサイト



タグ :

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://servletmania.blog137.fc2.com/tb.php/36-d8622970
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
QRコード
QR