fc2ブログ

[Java] PreparedStatementで検索

  • Posted by: servletmania
  • 2011-01-12 Wed 16:25:27
  • JDBC




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

DBUpdate2_3

今回は、このデータベースから太郎のデータを検索するプログラムを、StatementとPrepareStatementの両方を使ったソースを書いて見比べてみます。


Statementを使ったソース


ファイル名は「DBSelect2.java」とします。

package dbjava;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

public class DBSelect2 {

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

Connection con=null;
Statement smt=null;
ResultSet rs=null;

try{

String name="'太郎'";
String sql="select * from account where name="+name;

con=DBManager.testConnection();
smt=con.createStatement();
rs=smt.executeQuery(sql);

while(rs.next()){
System.out.println(
"ID="+rs.getInt("ID")
+", NAME="+rs.getString("NAME")
+", MONEY="+rs.getString("MONEY")
);
}
smt.close();
con.close();

}catch(SQLException e){
System.out.println("検索できませんでした。");

}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




PreparedStatementを使ったソース


ファイル名は「DBSelect3.java」とします。

package dbjava;

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

public class DBSelect3 {

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

Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;

try{

String name="太郎";
String sql="select * from account where name=?";

con=DBManager.testConnection();
ps=con.prepareStatement(sql);

ps.setString(1, name);

rs=ps.executeQuery();

while(rs.next()){
System.out.println(
"ID="+rs.getInt("ID")
+", NAME="+rs.getString("NAME")
+", MONEY="+rs.getString("MONEY")
);
}
ps.close();
con.close();

}catch(SQLException e){
System.out.println("検索できませんでした。");

}finally{
if(ps !=null){
try{
ps.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(con !=null){
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}
}


実行結果(コンソール)

ID=1, NAME=太郎, MONEY=5000



更新と検索とで大きく変わるところはありません。自力で書けるようにしておきましょう。
スポンサーサイト



タグ :

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/40-d30c37d5
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
QRコード
QR