[Java] データベースの更新
- 2011-01-07 Fri 10:35:57
- JDBC
データベースへの接続ができたところで、データベースの更新をするプログラムを作成します。
[dbjava]フォルダの下に「DBUpdate1.java」のファイルを作成します。

まずインポートするパッケージですが、JDBCドライバを管理してConnectionを取得するDriverManagerクラスは「DBManeger.java」のファイルを利用します。
なのでインポートが必要なのは、データベースとの接続を表すConnectionインタフェースと、SQLを発行するStatementインタフェースです。
流れとしては、DriverManager#testConnection()メソッドでConnectionオブジェクトを取得してDBとの接続を確保する→Connection#createStatement()メソッドでStatementオブジェクトを取得してSQLを実行する、ということになります。
accountデータベースの初期値は以下のようになります(前回のまま)。

ではソースを書きます。
では解説していきます。
(1) DBManagerクラスのtestConnection()メソッドを利用してConnectionクラスのオブジェクトconを作成します。testConnection()メソッドはstaticメソッドなので、クラス名+メソッド名で利用することができます(参考)。
(2) SQLを発行するためのStatementオブジェクトsmtを取得します。StatementオブジェクトはConnectionインタフェースのcreateStatement()メソッドで取得できます。
(3) SQLの発行は、StatementインタフェースのexecuteUpdate()メソッドで行います。メソッドの引数にはSQL文を指定し、返り値は変更された行数(int型)です。
(4) データベースとの接続を切るために、今回は一つメソッドを追加しています。Statementクラスのclose()メソッドは、JDBCリソースを開放します。
プログラムを実行すると、コンソールには
更新結果の確認は、HSQL Databese Managerで行いましょう(eclipse上で行えるほうが便利ですがまだ無理です)。

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上で行えるほうが便利ですがまだ無理です)。

スポンサーサイト
タグ :
Comments: