カテゴリー

2010年04月

    123
45678910
11121314151617
18192021222324
252627282930 

最近のコメント

« 日本のネットはこの先どうなるのか。 | メイン | 思い出のゲームについて語ってみる »

Hibernateを試してみる - 準備編

ゲームばっかりやってないで、たまには学習めいたことも・・・・w

O/Rマッピングに手を出してみようと思い立ったので、Hibernateなんぞ試してみることに。

今日は準備段階ということで、DBまわりを。
IDEは、Eclipse3.2を使っています。
違う環境の人は、自分の環境に合わせて適宜読み替えるなりしてください。

OracleやSQLServer使うのもアレすぎるので、フリーな、MySQL・PostgreSQLあたりを候補にしようかと思っていたんだけど、これらも導入に手間がかかる。SQLiteみたいな組み込みDBで十分。jarファイルをプロジェクトに含めるだけなので。この記事を見て、実際に試してみる人の負担も少ないほうが良いでしょうし。

そんなわけで使用するDBは、

HSQLDB http://hsqldb.org/ に決定。

http://sourceforge.net/project/showfiles.php?group_id=23316
から、『hsqldb_1_8_0_7.zip』を選んでダウンロード。URLはコレ

ダウンロードしたzipファイル内 「hsqldb/lib/hsqldb.jar」のjarファイルが使用するファイル。
取り出したら、新規プロジェクト→Javaプロジェクト(HibernateTestと命名)でプロジェクト作成し、libディレクトリを作成してソコに配置。
プロジェクトのプロパティ→Javaのビルドパス→ライブラリー タブで「JARの追加」を行い、jarへの参照設定をしておく。
20070528_1.png


設定後、パッケージ・エクスプローラーが↓こんな感じに
20070528_2.png

サンプルソースは一番最後に。

ポイントだけかいつまんで、

Class.forName("org.hsqldb.jdbcDriver");
conn = DriverManager.getConnection("jdbc:hsqldb:file:db/testdb;shutdown=true", "sa", "");
st = conn.createStatement();

DBURLの部分。
jdbc:hsqldb:file:[DBファイル名]
というのが基本形。
;shutdown=true
を指定しないとデータの永続化がされないらしい。
ちなみに、
jdbc:hsqldb:mem:[DB名]
とすると、インメモリモードで起動します。JVMが終了するとデータは失われます。

参考:http://web.paulownia.jp/java/memo/jdbc.html

他の部分はよくあるJDBCによるDB操作だと思うので説明は特に不要かと。

今回はここまで。
次回は、HSQLDBを相手に、Hibernateの初歩に突っ込んでみます。

○サンプルソース
package com.uhawwwokkwwwww.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


/**
 * HSQLDB 動作サンプル
 * @author tak
 *
 */
public class HsqldbSample {
    
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        HsqldbSample mainObj = new HsqldbSample();
        mainObj.execute();
    }
    
    /**
     * コンストラクタ
     */
    private HsqldbSample() {
    }
    
    /**
     * SQLをいろいろ実行してみるメソッド
     *
     */
    public void execute() throws Exception {
        Connection conn = null;
        Statement st = null;
        PreparedStatement prest = null;
        ResultSet rs = null;
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            conn = DriverManager.getConnection("jdbc:hsqldb:file:db/testdb;shutdown=true", "sa", "");
            st = conn.createStatement();
            
            // とりあえずあるかもしれないテーブルを削除
            try {
                st.executeUpdate("drop table tbl_okkwwwww");
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            // CREATE TABLE 実行
            final String CREATE_SQL
                = "create table tbl_okkwwwww(id varchar(10), name varchar(255))";
            st.execute(CREATE_SQL);
            
            st.close();
            st = null;
            
            // INSERTを何回か実行してみる
            final String INSERT_SQL
                = "insert into tbl_okkwwwww(id,name)values(?,?)";
            prest = conn.prepareStatement(INSERT_SQL);
            
            for (int i = 0; i < 100; i++) {
                prest.clearParameters();
                prest.setString(1, String.valueOf(i));
                prest.setString(2, "なまえ" + String.valueOf(i));
                
                prest.execute();
            }
            prest.close();
            prest = null;
            
            // SELECTしてみる
            final String SELECT_SQL
                = "select id, name from tbl_okkwwwww order by id asc";
            
            prest = conn.prepareStatement(SELECT_SQL);
            
            // 実行・表示
            rs = prest.executeQuery();
            while(rs.next()) {
                System.out.print("id=" + rs.getString("id"));
                System.out.println("\tname=" + rs.getString("name"));
            }
            
        } finally {
            if (st != null) st.close();
            if (rs != null) rs.close();
            if (prest != null) prest.close();
            if (conn != null) conn.close();
        }
    }

}

トラックバック

このエントリーのトラックバックURL:
http://mt.uhawwwokkwwwww.com/mt-tb.cgi/64

コメントを投稿

Powered by
Movable Type 3.35

About

2007年05月28日 23:33に投稿されたエントリーのページです。

ひとつ前の投稿は「日本のネットはこの先どうなるのか。」です。

次の投稿は「思い出のゲームについて語ってみる」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。