http://www.h2database.com/html/main.html http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm H2DBは大きく2つのモードがある。 :組込(Embedded):ローカルのDBファイルに直接アクセスする。サービスを外部へ公開することはできない。SQLiteみたいな感じ。 :サーバモード:DBサーバとして起動するモード。サービスを外部へ公開できる。通常のDB また、バージョン違いでの接続は避けたほうが無難。 !!!組込(Embedded)モード jdbc:h2:[file:]パス 例 jdbc:h2:~/test jdbc:h2:file:~/test など。 「file」の表記はあってもなくてもどっちでも良い。 ,指定パターン,データベースファイルの所在 ,jdbc:h2:~/test,C:\Documents and Settings\Windowsユーザー名\ に、testデータベースが作成される。 ,jdbc:h2:test,この場合も~指定と同様に、C:\Documents and Settings\Windowsユーザー名\ にtestデータベースが作成される。これはサーバーモードでH2 DBを動かしたときとは違う動作になる。 ,jdbc:h2:c:\work\data\test,ドライブ名からフルパスで指定したときは、そのフルパス指定の場所に作成される。例ではc:\work\data\ に、testデータベースが作成される。 !!!サーバモード jdbc:h2:tcp://localhost/~/test などで接続。事前に h2.bat 等でサーバを起動しておく必要がある。 ,指定パターン,データベースファイルの所在 , jdbc:h2:tcp://localhost/~/test,C:\Documents and Settings\Windowsユーザー名\ に、testデータベースが作成される。 , jdbc:h2:tcp://localhost/test,H2インストールディレクトリ\bin\ に、testデータベースが作成される。 , jdbc:h2:tcp://localhost/c:\work\data\test,ドライブ名からフルパスで指定したときは、そのフルパス指定の場所に作成される。例ではc:\work\data\ に、testデータベースが作成される。 !!!データ型 http://d.hatena.ne.jp/sekom/20081201/p1 ,H2のデータ型,See also,備考 ,INT,java.lang.Integer,- ,BOOLEAN,java.lang.Boolean,- ,TINYINT,java.lang.Byte,- ,SMALLINT,java.lang.Short,- ,BIGINT,java.lang.Long,- ,IDENTITY,java.lang.Long,- ,DECIMAL,java.math.BigDecimal,- ,DOUBLE,java.lang.Double,- ,REAL,java.lang.Float,- ,TIME,java.sql.Time,java.sql.Timeのインスタンスを生成する際には、年月日の部分は1970年1月1日にしないと挙動不審な動作をします。 ,DATE,java.sql.Date,- ,TIMESTAMP,java.sql.Timestamp,- ,BINARY,-,byte[]と互換性があります。SetXXX時には、java.io.InputStream(抽象クラスです)も使用可能です。 ,OTHER,-,java.lang.Objectと互換性があります。 ,VARCHAR,java.lang.String,SetXXX時には、java.io.Reader(抽象クラスです)も使用可能です。setAsciiStream時には、java.io.InputStream(抽象クラスです)も使用可能です。 ,VARCHAR_IGNORECASE,-,java.lang.Stringと互換性があります。 ,CHAR,-,java.lang.Stringと互換性があります。 ,BLOB,-,ResultSetから取り出す際には、java.sql.Blob(インターフェースです)で取り出します。SetXXX時にはjava.sql.Blob(インターフェースです)、javax.sql.rowset.serial.SerialBlob(J2SE5以降)、byte[]のいずれかを使用します。 ,CLOB,-,ResultSetから取り出す際には、java.sql.Clob(インターフェースです)で取り出します。SetXXX時にはjava.sql.Clob(インターフェースです)、javax.sql.rowset.serial.SerialClob(J2SE5以降)、java.lang.Stringのいずれかを使用します。 ,UUID,-,java.lang.Longと互換性があります。 ,ARRAY,-,java.lang.Objectと互換性があります。紛らわしいですが、java.sql.Arrayとは互換性がありません。 {{category2 データベース,SQLite}}