SpringJDBC を用いた JDBC プログラミング

このページでは,Eclipse を使って,Java 言語の JDBC プログラムを作る手順を, 見本となるプログラムと説明する. JDBC は,Java 言語でリレーショナルデータベースを操作するための手段として使う. この Web ページの要点は,素の JDBC よりも,SpringJDBC を使うほうが便利ということです.

ここに書いたプログラムは,PostgreSQLで 動く.ごく簡単な設定の変更でMySQLJava DBや他のリレーショナルデータベースソフトウェアでも動く.

必要となるソフトウェア

あらかじめ決めておく事項と設定内容

Spring 2 インストールディレクトリを確認しておく。 このページでは,次のように書く。

設定内容について.この Web ページに掲載するプログラムは,下記の設定である. 設定が違う場合には,プログラムを書き換える(書き換えは難しくは無い).

テスト用データベースの作成

テスト用データベースとして,下記の SQL コマンドで,テーブル commodity が作られ,データが入っていること.

create table commodity (
    id integer primary key not null,
    name varchar(32) not null,
    price integer );
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );
select * from commodity;

Eclipse での Spring JDBC プログラムの作成手順

以下,Eclipse を使う. プロジェクトの作成クラスの定義実行という一連の操作を,図解で説明する.

Eclipse の使用にあたって,事前に決めておく事項

Eclipse のプロジェクト等を作る. このページでは,プロジェクト名,パッケージ名は次のように記述します. (すでに同じ名前のプロジェクトがある,といったときは,プロジェクト名を変えてください).

プロジェクトの新規作成

下記の手順で,プロジェクトを新規に作成する.

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ (Window)」→「ビューの表示 (Show View)」→「プロジェクト・エクスプローラ (Project Explorer)」 と操作する.

  2. プロジェクトの新規作成の開始

    ファイル」→「新規 (New)」→「プロジェクト (Project)
    または,プロジェクト・エクスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

  3. Java」の展開

    新規プロジェクトのウインドウが開くので, 「Java」を展開する.

  4. Java プロジェクト」の選択

    展開した「Java」の下にある 「Java プロジェクト」を選び,「次へ」をクリック.

  5. プロジェクト名の指定

    新規Javaプロジェクトのウインドウが開くので,プロジェクト名を付ける(1行目). プロジェクト名には好きにつけて良いが,全角文字は避ける.分かりやすい名前が良い.

  6. Java 設定

    Java 設定はデフォルトのままでよい.「終了」をクリック

  7. パースペクティブ

    もし,「関連付けられたパースペクティブを開きますか?」というウインドウが開いたら,パースペクティブを開きたいので,「はい」をクリック.

(Java DB (Derby) を使うときのみ) Apache Derby ネーチャーの追加と,サーバの開始

Java DB (Derby) を使うときに限り,プロジェクトへのApache Derby ネーチャーの追加 と,Java DB (Derby) サーバの開始を行う. これは, Java DB (Derby) を使うための追加的な設定です

  1. プロジェクト・エクスプローラで,プロジェクト名 HelloWorld右クリック
  2. 「Apache Derby」→「Apache Derby ネーチャーの追加」

    「Apache Derby」が候補として現れないときは, Java DB (Derby) インストール の手順に従って,インストールと設定を行う.

  3. 「Apache Derby」→「Derby ネットワーク・サーバの開始」

    ポート1527 で Derby サーバが起動します.

    「Derby ネットワーク・サーバの開始」が選べない状態になっているときは, すでに開始済みなので,この手順は不要.

リレーショナルデータベース・ソフトウェアとして,Java DB (Derby) 以外を使う場合は,上記は不要です.

プロジェクトへの Spring プロジェクト・ネーチャーの追加

今度は,Spring JDBC を使うための設定です.

プロジェクトへの Spring プロジェクト・ネーチャーの追加を,次の操作で行う.

  1. プロジェクト・エクスプローラで,プロジェクト名 HelloWorld右クリック
  2. Spring ツール (Spring Tools)」→「Spring プロジェクト・ネーチャーの追加」と操作.

    Spring ツール (Spring Tools)」が候補として現れないときは, Eclipse の SpringIDE プラグイン の手順に従って,インストールを行う.

  3. プロジェクトの下に,「Spring Elements」が増えるので確認しておく.

    プロジェクト名 HelloWorld の左横の 「+」をクリックして展開すると, 「Spring Elements」が増えている. (Spring プロジェクト・ネーチャーの追加ができたことが分かる).

プロジェクトへの外部 jar ファイルの追加

次の2種類の jar ファイルを,プロジェクトに追加します.

外部 jar ファイルを,プロジェクトに追加する手順を下記に示す.

  1. プロジェクト・エクスプローラで,プロジェクト名 HelloWorld右クリック
  2. プロパティー」→「Java コンパイラー」→「Java のビルド・パス」→「ライブラリー
  3. 外部 JAR の追加」をクリック
  4. Spring 2 に関する次の 2 つの jar ファイルを外部 jar として追加
    C:\Program Files\Java\spring-framework-2.5\dist\spring.jar
    C:\Program Files\Java\spring-framework-2.5\lib\jakarta-commons\commons-logging.jar
    

    上記のファイルが現れないときは,Spring 2 インストール の手順に従ってインストールを行う.

  5. JDBC の jar ファイルを追加
    • PostgreSQL の場合:

      C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar を追加する.

    • MySQL の場合:

      C:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar を追加する.

      JDBC の jar ファイルが無い,というときは,MySQL Connector Java のダウンロードの Web ページを見てください.

    • Java DB の場合:

      C:Program Files\eclipse3.5\eclipse\plugins\org.apache.derby.core_10.5.1\derby.jar を追加する.

  6. 外部 JAR の確認

    外部 JAR システムを確認したいときは,プロジェクト・エクスプローラで,「Java リリース; src」の下の,「ライブラリー」を展開する.

パッケージ作成

Eclipse のプロジェクト・エクスプローラを使って, パッケージを作成します. パッケージ名には hoge.hoge.com のようなドメイン名を付ける習慣があることに注意してください. このページでは,作成するパッケージ名は,hoge.hoge.com と書く. (パッケージ名を変えるときは,読み替えてください).

  1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

    「ウインドウ」→「ビューの表示」→「プロジェクト・エクスプローラ」 と操作する.

    パッケージの作成,クラスの作成などの作業は,プロジェクト・エクスプローラで行う.

  2. パッケージを新規作成すべきプロジェクトの選択

    プロジェクト・エクスプローラに,プロジェクト一覧が表示されているはずです. パッケージを新規作成したいプロジェクト名 HelloWorld右クリックして, 「新規」→「パッケージ」と操作する.

  3. パッケージ名の設定

    名前のところに,パッケージ名 hoge.hoge.com を設定し,「終了」をクリックする.

  4. パッケージの確認

    プロジェクト・エクスプローラにおいて, パッケージ hoge.hoge.com が増えていることを確認する.

クラス定義

Spring JDBC のサンプルプログラムとして,次の4つのクラスを定義します.

  1. CommodityDso

    データ格納用クラス

    テーブル Commodity の1タップル(行)を格納するためのオブジェクト

  2. CommodityDao

    データ操作用クラス

    テーブル Commodity に関わる操作(テーブル Commodity の1タップル,複数タップル等を出力する)

  3. DataSourceFactory

    JDBC ドライバ名,データベース名などの定義

  4. HelloWorld

    データ操作用クラス CommodityDao のメソッドを呼び出して結果を表示

クラス定義の手順は次の通りです. 前準備として,パッケージ hoge.hoge.com を作成済みであること.

  1. クラス定義の開始

    プロジェクト・エクスプローラにおいて, クラスを定義したいパッケージ名 hoge.hoge.com右クリック.その後, 「新規」→「クラス」と操作する.

    *新規」を選んだとき,「クラス」が現れないことがあります. そのときは, 「新規」→「その他」→「Java」→「クラス」と操作する.

    プロジェクト・エクスプローラで, パッケージ名 hoge.hoge.comが表示されていないときは, プロジェクト名の下の 「Java リソース; src」または「src」の下を展開して下さい.

  2. 定義すべきクラス名等の指定

    Java パッケージ名,クラス名を入力できるウインドウが開くので,設定を行う.

    1. 「パッケージ (package)」(2行目の「パッケージのところ): パッケージ名 「hoge.hoge.com」を設定.(「hoge.hoge.com」になっていなければ修正すること).
    2. 「クラス名」(4行目の「名前」のところ): ここでは,HelloWorld と書いている.
    3. 「public static void main(String[] args)」: チェックする
    4. 上記の「クラスの新規作成」の操作を,4つのクラスについて繰り返す

      新規作成すべきクラスは,CommodityDsoCommodityDaoDataSourceFactoryHelloWorld の 4 つである.

  3. クラスファイル一覧の表示

    プロジェクト・エクスプローラで, パッケージ名 hoge.hoge.com の左横の「+」をクリックすると, クラスファイル一覧が表示されます.

  4. 定義したいクラスのファイルを開く

    Eclipse のプロジェクト・エクスプローラで,定義したいクラスの「クラス名.java」ダブルクリックします. すると,エディタが開きます.

  5. エディタでクラス CommodityDso, CommodityDao, DataSourceFactory, HelloWorld を定義する

    下記のクラス定義をカットアンドペーストして使ってください. (パッケージ名を「hoge.hoge.com」と書いているので,パッケージ名を別の名前にしている場合には,適切に読み替えてください).

  6. ソースを保存

    「ファイル」→「保管」または CTRL+S で保存される. 保存時にコンパイルされる

    コンパイル時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する.

CommodityDso.java

テーブル Commodity の1タップル(行)を格納するためのオブジェクト

CommodityDso クラスを新規作成したら,下記のプログラムをカット&ペースト.

----------------------ここから--------------------
package hoge.hoge.com;

public class CommodityDso {
    // リレーショナルデータベースの1つのレコード(行)を,1つの Java オブジェクトに対応させる
    // Commodity テーブルのレコード(行)用に,CommodityDso という名前のクラスを定義する.
    

    private Integer type;
    private String name;
    private Integer price;

   
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getPrice() {
        return price;
    }
    public void setPrice(Integer price) {
        this.price = price;
    }

}
----------------------ここまで----------------------

CommodityDao.java

テーブル Commodity に関わる操作(テーブル Commodity の1タップル,複数タップル等を出力する)

CommodityDao クラスを新規作成したら,下記のプログラムをカット&ペースト.

----------------------ここから--------------------
package hoge.hoge.com;

import java.sql.*;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

public class CommodityDao {
        // 使用するテーブル名
        final private static String TABLE = "Commodity";
        // private で SimpleJdbcTemplate オブジェクトを定義して,他のメソッドで使う,というのが決まり文句(詳しくは Spring のマニュアル)
        private SimpleJdbcTemplate jdbcTemplate;
       
    public void setDataSource(org.springframework.jdbc.datasource.DriverManagerDataSource dataSource) {
        this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
    }
   
    //
    // 更新の例(1行挿入.値の更新)
    //
    public void insertTuple(int type, String name, int price) {
        this.jdbcTemplate.update("insert into " + TABLE + " values ( " + type + ", '" + name + "', " + price + " )");
    }
   
    public void setName(int type, String name) {
        this.jdbcTemplate.update("update " + TABLE + " set name = ? where type = ?", new Object[] {name, new Integer(type)});
    }

    //
    // 問い合わせ
    //
   
    // タップル数
    public int getCount() {
        return this.jdbcTemplate.queryForInt("select count(*) from " + TABLE);
    }
   
    // 選択条件の無い4つの問い合わせ
    // ■ 結果が,単純値のリスト
    //     type のリスト
    public List<Map<String,Object>> getAllType() {
      return this.jdbcTemplate.queryForList("select type from " + TABLE);
    }
    //     name のリスト
    public List<Map<String,Object>> getAllName() {
        return this.jdbcTemplate.queryForList("select name from " + TABLE);
    }
    //     price のリスト
    public List<Map<String,Object>> getAllPrice() {
        return this.jdbcTemplate.queryForList("select type from " + TABLE);
    }
    // ■ 結果が,タップルのリスト
    public List<Map<String,Object>> getAllTuple() {
        return this.jdbcTemplate.queryForList("select * from " + TABLE);
    }
    // ■ 結果が,CommodityDso オブジェクトのリスト (つまり,結果が Java の CommodityDso オブジェクトに格納されている)
    public List<CommodityDso> getAllCommodity() {   
        return this.jdbcTemplate.query(
                "select * from " + TABLE,
                new org.springframework.jdbc.core.simple.ParameterizedRowMapper<CommodityDso>() {
                    public CommodityDso mapRow(ResultSet rs, int rowNum) throws SQLException {
                        CommodityDso c = new CommodityDso();

                        c.setType(rs.getInt("type"));
                        c.setName(rs.getString("name"));
                        c.setPrice(rs.getInt("price"));

                        return c;
                    }
                });
    }
   
    // ■ 選択条件あり.price で選択したときのタップル数
    public int getCountByPrice( int price ) {
        return this.jdbcTemplate.queryForInt("select count(*) from " + TABLE + " where price = ?", price);
    }
    // 選択条件あり.type で選択して,CommodityDso オブジェクトを出力
    // (type が主キーなので CommodityDso オブジェクトは1つになる)
    public CommodityDso selectNameByType( int type ) {   
            return this.jdbcTemplate.queryForObject(
                "select * from " + TABLE + " where type = ?",
                new org.springframework.jdbc.core.simple.ParameterizedRowMapper<CommodityDso>() {
                    public CommodityDso mapRow(ResultSet rs, int rowNum) throws SQLException {
                        CommodityDso c = new CommodityDso();

                        c.setType(rs.getInt("type"));
                        c.setName(rs.getString("name"));
                        c.setPrice(rs.getInt("price"));

                        return c;
                    }
                },
                type );
    }
}
----------------------ここまで----------------------
 

DataSourceFactory.java

JDBC ドライバ名,データベース名などの定義を行うクラスです. DataSourceFactory.java は,PostgreSQL 用になっているので,他のリレーショ ナルデータベースシステムを使うときは,先頭部分を書き換えることを忘れないこと.

Eclipse で DataSourceFactory クラスを新規作成したら,下記のプログラムをカット&ペースト.

JDBC プログラムで,データベースシステムと接続するとき, 新しいデータベースを作るには,「;create=true」を付ける.

----------------------ここから----------------------
package hoge.hoge.com;

import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class DataSourceFactory {
        // 決まり文句 (ドライバクラス)
    final private static String PostgresJDBCDriver = "org.postgresql.Driver";
    final private static String MySQLJDBCDriver = "org.gjt.mm.mysql.Driver";
    final private static String JavaDBJDBCDriver = "org.apache.derby.jdbc.EmbeddedDriver";
    final private static String HiRDBDriver = "JP.co.Hitachi.soft.HiRDB.JDBC.PrdbDriver";

    // 下記の変数を正しく設定する
    // DBNAME, DBDIR, USER, PASS, JDBCDriver, DBURL


        // PostgreSQL 用デフォルト
        // Eclipse で PostgreSQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
        //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
        //     その後インポートすべきファイルとして,次のファイルを指定
        //       C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar
        final private static String DBNAME = "testdb"; // Database Name
        final private static String USER = "testuser"; // user name for DB.
        final private static String PASS = "hoge$#34hoge5"; // password for DB.
        final private static String JDBCDriver = PostgresJDBCDriver;
        final private static String DBURL = "jdbc:postgresql://localhost/" + DBNAME;


        // MySQL 用デフォルト
        // Eclipse で MySQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
        // https://dev.mysql.com/downloads/connector/ から,Connector/J をダウンロード
        // c:\Program Files\Java\mysql-connector-java-5.1.6\ に置く.
        //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
        //     その後インポートすべきファイルとして,次のファイルを指定
        //       c:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar を追加
        // final private static String DBNAME = "testdb"; // Database Name
        // final private static String USER = "testuser"; // user name for DB.
        // final private static String PASS = "hoge$#34hoge5"; // password for DB.
        // final private static String JDBCDriver = MySQLJDBCDriver;
        // final private static String DBURL = "jdbc:mysql://localhost/" + DBNAME;   

        // JavaDB用デフォルト
        // final private static String DBNAME = "dbdir;create=true"; // Java DB の場合は,Java DB データベースディレクトリ(相対)
        // final private static String DBDIR = "C:\\Program Files\\eclipse3.5\\eclipse\\"; // データベースが存在するディレクトリ
                // DTP, DBViewer などを使ってデータベースを生成した場合は Eclipse インストールディレクトリ
                // ij などを使ってデータベースを生成した場合は,c:\\<ワークスペース>\\<プロジェクト名>
        // final private static String USER = ""; // user name for DB. Java DB (Derby) の場合は空
        // final private static String PASS = ""; // password for DB. Java DB (Derby) の場合は空
        // final private static String JDBCDriver = JavaDBJDBCDriver;
        // final private static String DBURL = "jdbc:derby:" + DBDIR + DBNAME;

        // HiRDB用デフォルト
        // Eclipse で HiRDB を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
        //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
        //     その後インポートすべきファイルとして,次のファイルを指定
        //       C:\win32app\hitachi\hirdb_s\CLIENT\UTL\pdjdbc.jar
        // ユーザ名,パスワード: C:/windows/HiRDB.iniのPDUSER の値を調べておく
        // final private static String USER = "ユーザ名"; // user name for HiRDB. see C:/windows/HiRDB.ini
        // final private static String PASS = "パスワード"; // password for HiRDB. see C:/windows/HiRDB.ini
        // final private static String JDBCDriver = HiRDBDriver;
        // final private static String HiRDBServerName = "hitachi-664320D"; // HiRDB サーバのコンピュータ名
        // final private static String DBURL = "jdbc:hitachi:PrdbDrive://DBID=22200,DBHOST=" + HiRDBServerName + ",ENCODELANG=MS932"; // 'DBID=22200' is in "conf\pdsys";


        DriverManagerDataSource connect() {
                org.springframework.jdbc.datasource.DriverManagerDataSource dataSource = new DriverManagerDataSource();
                dataSource.setDriverClassName((String)JDBCDriver);
                dataSource.setUrl(DBURL);
                dataSource.setUsername(USER);
                dataSource.setPassword(PASS);
                return dataSource;
        }
}
----------------------ここまで----------------------

HelloWorld.java

データ操作用クラス CommodityDao のメソッドを呼び出して結果を表示

HelloWorld クラスを新規新規作成したら,下記のプログラムをカット&ペースト.

----------------------ここから--------------------
package hoge.hoge.com;

import java.sql.*;

import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class HelloWorld {
            public static void main(String[] args) {
            DataSourceFactory dataSourceFactory = new DataSourceFactory();
            DriverManagerDataSource dataSource = dataSourceFactory.connect();
       
            CommodityDao e = new CommodityDao();
            e.setDataSource(dataSource);

            // テーブル定義
            // 「Commodity テーブルが無い」というようなエラーメッセージが出た場合の回避策として,
            // 「e.doExecuteSample();」を1度実行して,テーブルを定義する.
            // e.doExecuteSample();

            // 問い合わせ実行
            System.out.println(" getCount() = " + e.getCount() );
            System.out.println(" getAllType() = " + e.getAllType() );
            System.out.println(" getAllName() = " + e.getAllName() );
            System.out.println(" getAllPrice() = " + e.getAllPrice() );
            System.out.println(" getAllTuple() = " + e.getAllTuple() );
            System.out.println(" getAllCommodity() = " + e.getAllCommodity() );
           
            // 更新と問い合わせ実行
            e.insertTuple(7, "No Name 1", 1000);
            e.insertTuple(8, "No Name 2", 1010);
            e.setName(7, "New Name 1");
            System.out.println(" getCount() = " + e.getCount() );
            System.out.println(" getAllName() = " + e.getAllName() );
            System.out.println(" getAllType() = " + e.getAllType() );
            System.out.println(" getAllName() = " + e.getAllName() );
            System.out.println(" getAllPrice() = " + e.getAllPrice() );
            System.out.println(" getAllTuple() = " + e.getAllTuple() );
            System.out.println(" getAllCommodity() = " + e.getAllCommodity() );
            System.out.println(" getCountByPrice() = " + e.getCountByPrice(100) );           
            // 問い合わせ結果を CommodityDsoに格納するもの
            CommodityDso c = e.selectNameByType(1);
            System.out.println(" selectNameByType(1) = " + c + ", type = " + c.getType() + ", name = " + c.getName() + ", price = " + c.getPrice());
      }
}
----------------------ここまで----------------------

実行

  1. 実行したいクラスを選び,右クリック

    プロジェクト・エクスプローラで,パッケージ名の下にクラスファイル一覧が出ているので,実行したいクラスの「クラス名.java」 (つまり,HelloWorld.java)右クリック

  2. 実行」 → 「Javaアプリケーション (Java Application)」と操作

    もしくはAlt+Shift+Xを押し,J を押すという操作でもよい.

  3. 実行結果は次のようになる.
    2008/10/01 16:11:21 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
    情報: Loaded JDBC driver: org.postgresql.Driver
     getCount() = 6
     getAllType() = [{type=1}, {type=2}, {type=3}, {type=4}, {type=5}, {type=6}]
     getAllName() = [{name=apple}, {name=orange}, {name=strawberry}, {name=watermelon}, {name=melon}, {name=banana}]
     getAllPrice() = [{type=1}, {type=2}, {type=3}, {type=4}, {type=5}, {type=6}]
     getAllTuple() = [{type=1, name=apple, price=50}, {type=2, name=orange, price=20}, {type=3, name=strawberry, price=100}, {type=4, name=watermelon, price=150}, {type=5, name=melon, price=200}, {type=6, name=banana, price=100}]
     getAllCommodity() = [hoge.hoge.com.CommodityDso@e48e1b, hoge.hoge.com.CommodityDso@12dacd1, hoge.hoge.com.CommodityDso@1ad086a, hoge.hoge.com.CommodityDso@10385c1, hoge.hoge.com.CommodityDso@42719c, hoge.hoge.com.CommodityDso@30c221]
     getCount() = 8
     getAllName() = [{name=apple}, {name=orange}, {name=strawberry}, {name=watermelon}, {name=melon}, {name=banana}, {name=No Name 2}, {name=New Name 1}]
     getAllType() = [{type=1}, {type=2}, {type=3}, {type=4}, {type=5}, {type=6}, {type=8}, {type=7}]
     getAllName() = [{name=apple}, {name=orange}, {name=strawberry}, {name=watermelon}, {name=melon}, {name=banana}, {name=No Name 2}, {name=New Name 1}]
     getAllPrice() = [{type=1}, {type=2}, {type=3}, {type=4}, {type=5}, {type=6}, {type=8}, {type=7}]
     getAllTuple() = [{type=1, name=apple, price=50}, {type=2, name=orange, price=20}, {type=3, name=strawberry, price=100}, {type=4, name=watermelon, price=150}, {type=5, name=melon, price=200}, {type=6, name=banana, price=100}, {type=8, name=No Name 2, price=1010}, {type=7, name=New Name 1, price=1000}]
     getAllCommodity() = [hoge.hoge.com.CommodityDso@9931f5, hoge.hoge.com.CommodityDso@19ee1ac, hoge.hoge.com.CommodityDso@1f1fba0, hoge.hoge.com.CommodityDso@1befab0, hoge.hoge.com.CommodityDso@13c5982, hoge.hoge.com.CommodityDso@1186fab, hoge.hoge.com.CommodityDso@14b7453, hoge.hoge.com.CommodityDso@c21495]
     getCountByPrice() = 2
     selectNameByType(1) = hoge.hoge.com.CommodityDso@a0dcd9, type = 1, name = apple, price = 50
    

プログラムは動作するが,データベースと接続できない場合, USER, PASS の行などを確かめる.

(参考)

Eclipse で データベースの中身を確認したいときは, Eclipse のデータツール・プラットホーム を使って,簡単にできる.