|
| |
2002/02/03 田中宏和 |
| Last Update
2002/12/11 |
|
 |
JDBC編 |
 |
◆JDBCとは? |
| JDBCとはJavaからデータベースにアクセスするためのAPIです。JDBCのAPIを使用してJavaのプログラムからデータベースにSQL文を発行してデータベースのデータの操作を行うことができます。 |
| ◆データベースとは? |
| データベースとはデータの集まりのことです。たくさんのデータを整理、分類して管理することによってユーザーが必要なデータを簡単に検索して取り出したり、またデータを追加、更新したりできるようになります。 |
| ◆ここでの環境 |
| OS |
Windows 2000 |
| J2SE SDK |
1.3.1_01 |
| データベース |
MS Access
2000 |
|
|
|
| ◆Java実行環境の構築 |
| アプリケーション編を参考にしてJava実行環境を構築してください。 |
| ◆データベースの用意 |
| ここではAccessをデータベースとして使用します。Accessをインストールされていない人も多いと思います。フリーのデータベースのMySQLを使用して全く同じことをしている例がJDBC(MySQL)編にありますのでそちらのページに移動してください。なお、Linuxをインストールされている方はJDBC(PostgreSQL)編でもOKです。 |
| ◆データベースの作成 |
| ■データベースの作成 |
MS Accessを起動して新規データベースを作成します。
データベース名:helloworld.mdb |
| ■テーブルの作成 |
| ここでは以下のようなテーブルを作りました。 |
| テーブル名:HELLO_WORLD_TABLE |
| デザイン: |
 |
| ■データの作成 |
| ここでは以下のようなデータを作成しました。 |
|
| ■DSN(データソースネーム)の登録 |
| helloworld.mdbを参照するhelloworldという名前のDSNを登録します。Windows2000の場合は「コントロールパネル」→「管理ツール」→「データソース(ODBC)」で作成できます。 |
| 1.「ユーザーDSN」のタブを開いて追加ボタンを押します。 |
 |
| 2.ドライバを選ぶ画面が表示されますんで「Driver do Microsoft Access
(*.mdb)」を選んで完了ボタンをおします。 |
 |
| 3.「ODBC Microsoft Access セットアップ」というウインドウが表示されます。ここではデータソース名を入力して、データベースを作成します。まずデータソース名のところに「helloworld」と入力してください。次に選択ボタンを押して上で作ったhelloworld.mdbを選択します。 |
 |
| |
| ◆検索した結果を表示するコードの作成 |
| ■Javaソースコード |
| HelloWorldJDBC.java(ここからダウンロード) |
import java.sql.*;
public class HelloWorldJDBC {
public static void main(String[] args) {
try {
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:odbc:helloworld");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
// 全ての行を検索するSQL文を作成
String sql = "SELECT * FROM HELLO_WORLD_TABLE";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
// 検索された行数分ループ
while(rs.next()){
// NOを取得
int no = rs.getInt("NO");
// 言語を取得
String lang = rs.getString("LANGUAGE");
// メッセージを取得
String msg = rs.getString("MESSAGE");
// 表示
System.out.println(no + " " + lang + " " + msg);
}
// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
|
|
| ■JDBCドライバのCLASSPATHへの追加 |
| ODBC経由で接続する場合のJDBCドライバはJ2SE SDKに含まれているのでここでは追加する必要はありません。 |
| ■コンパイルと実行 |
| コマンドプロンプト |
| C:\作業フォルダ\JavaHello>javac
HelloWorldJDBC.java C:\作業フォルダ\JavaHello>java
HelloWorldJDBC
1 日本語 こんにちは 世界
2 英語 Hello World
C:\作業フォルダ\JavaHello> |
|
| おおおおお!表示されましたね! |
| |
| ◆行の削除、更新、追加をするコードの作成 |
| 次に行の削除、更新、追加を行うコードを作成します。行の削除、更新、追加を行うにはStatementインターフェースのexecuteUpdateメソッドを使用します。executeUpdateメソッドの戻り値は削除、更新、追加した行数になります。また、検索の場合はexecuteQueryメソッドを使用します。 |
| ■Javaソースコード |
| HelloWorldJDBCUpdate.java(ここからダウンロード) |
import java.sql.*;
public class HelloWorldJDBCUpdate {
public static void main(String[] args) {
try {
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:odbc:helloworld");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
// NOが3の行を削除するSQL文を作成します
String sql = "DELETE FROM HELLO_WORLD_TABLE " +
"WHERE HELLO_WORLD_TABLE.NO=3";
// クエリーを実行します
int result = stmt.executeUpdate(sql);
System.out.println(result + "行削除しました");
// NOが3の行を新しく追加するSQL文を作成します
sql = "INSERT INTO HELLO_WORLD_TABLE (NO,LANGUAGE,MESSAGE) " +
"VALUES(3 ,'ドイツ語','Hallo Welt')";
// クエリーを実行します
result = stmt.executeUpdate(sql);
System.out.println(result + "行追加しました");
// NOが1の行を新しい値で更新するSQL文を作成します
sql = "UPDATE HELLO_WORLD_TABLE "+
"SET LANGUAGE='スペイン語',MESSAGE='Hola Mundo' " +
"WHERE HELLO_WORLD_TABLE.NO=1";
// クエリーを実行します
result = stmt.executeUpdate(sql);
System.out.println(result + "行更新しました");
// 全ての行を検索するSQL文を作成
sql = "SELECT * FROM HELLO_WORLD_TABLE";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
// 検索された行数分ループ
while(rs.next()){
// NOを取得
int no = rs.getInt("NO");
// 言語を取得
String lang = rs.getString("LANGUAGE");
// メッセージを取得
String msg = rs.getString("MESSAGE");
// 表示
System.out.println(no + " " + lang + " " + msg);
}
// データベースから切断
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} |
|
|
| ■コンパイルと実行 |
| コマンドプロンプト |
| C:\JavaHello\JDBC>javac
HelloWorldJDBCUpdate.java
C:\JavaHello\JDBC>java HelloWorldJDBCUpdate
0行削除しました
1行追加しました
1行更新しました
1 スペイン語 Hola Mundo
2 英語 Hello World
3 ドイツ語 Hallo Welt
C:\JavaHello\JDBC>
|
|
| おおおお!追加されて更新できましたね!もう一度実行するとNOが3の行が存在するため1行削除してから1行追加するようになります。 |
| コマンドプロンプト |
C:\JavaHello\JDBC>java
HelloWorldJDBCUpdate
1行削除しました
1行追加しました
1行更新しました
1 スペイン語 Hola Mundo
2 英語 Hello World
3 ドイツ語 Hallo Welt
C:\JavaHello\JDBC>
|
|
| おおお!削除してから追加できましたね! |
| |
■関連 JDBC(トランザクション)編
JDBC(データソース)編 JDBC(MySQL)編
JDBC(PostgreSQL)編
) プロパティファイル編 |
|
| |
|
|
| ツールの部屋
- Java関連の書籍 - デザインパターン - 情報交換掲示板
- HOME |