[Java] PreparedStatementで検索
- 2011-01-12 Wed 16:25:27
- JDBC
データベースの初期状態は以下のようになっています。

今回は、このデータベースから太郎のデータを検索するプログラムを、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
更新と検索とで大きく変わるところはありません。自力で書けるようにしておきましょう。
スポンサーサイト
タグ :
Comments: