トップ 一覧 置換 検索 ヘルプ RSS ログイン

H2 DBの使い方の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
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}}