JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > JDBC編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  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