fc2ブログ

[Java] データベースの更新

  • Posted by: servletmania
  • 2011-01-07 Fri 10:35:57
  • JDBC




データベースへの接続ができたところで、データベースの更新をするプログラムを作成します。

[dbjava]フォルダの下に「DBUpdate1.java」のファイルを作成します。

DBUpdate

まずインポートするパッケージですが、JDBCドライバを管理してConnectionを取得するDriverManagerクラスは「DBManeger.java」のファイルを利用します。

なのでインポートが必要なのは、データベースとの接続を表すConnectionインタフェースと、SQLを発行するStatementインタフェースです。

流れとしては、DriverManager#testConnection()メソッドでConnectionオブジェクトを取得してDBとの接続を確保する→Connection#createStatement()メソッドでStatementオブジェクトを取得してSQLを実行する、ということになります。

accountデータベースの初期値は以下のようになります(前回のまま)。

DBUpdate2


ではソースを書きます。

package dbjava;

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

public class DBUpdate1 {

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

Connection con=null;
Statement smt=null;

try{
con=DBManager.testConnection(); //(1)
smt=con.createStatement(); //(2)
int count=smt.executeUpdate
("update account set money=5000 where id=1"); //(3)

System.out.println(count+"つのデータを更新しました。");

smt.close(); //(4)
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();
}
}
}
}
}


では解説していきます。

(1) DBManagerクラスのtestConnection()メソッドを利用してConnectionクラスのオブジェクトconを作成します。testConnection()メソッドはstaticメソッドなので、クラス名+メソッド名で利用することができます(参考)。

(2) SQLを発行するためのStatementオブジェクトsmtを取得します。StatementオブジェクトはConnectionインタフェースのcreateStatement()メソッドで取得できます。

(3) SQLの発行は、StatementインタフェースのexecuteUpdate()メソッドで行います。メソッドの引数にはSQL文を指定し、返り値は変更された行数(int型)です。

(4) データベースとの接続を切るために、今回は一つメソッドを追加しています。Statementクラスのclose()メソッドは、JDBCリソースを開放します。

プログラムを実行すると、コンソールには

1つのデータを更新しました。

と出力されます。

更新結果の確認は、HSQL Databese Managerで行いましょう(eclipse上で行えるほうが便利ですがまだ無理です)。

DBUpdate3

スポンサーサイト



タグ :

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