【Pure】HSQL database engine【Java】
100% pure Java なデータベース HSQL について語ってくれたまえ。
Javaアプリケーションのデータ格納用に、PostgreSQL や
MSDE をインストールするのはちょっと面倒くさい、
Jet(mdb)みたいにセットアップできるデータベースが欲しい、
そんなあなたに HSQL。
http://hsqldb.sourceforge.net/ >>253
実際には使ってないけど。
asciiでもダブルクォートがないとエラーになる。 NetBeansのSQLコマンド窓から使ってるからかな。 ちがうらしい。jdbcでいじくっても必要だ。
めんどくさ! >>252
いままで全然そういうふうになったことないんだけど.... テーブル名をASCIIで大文字で書いたときは""はいらないみたい。
HOGEなら不要、hogeやHogeは必要。
HSQLDB 1.8.0.4 2バイト文字なら、くくっておくのがいいだろ。
これは大抵のDBに言える。
>テーブル名をASCIIで大文字で書いたときは""はいらないみたい。
これはHSQLDBの変な仕様だよね?
テーブル名がCase Sensitiveってことか?
いや、明確に小文字だと認識させたい場合にクオートでくくらないといけないのは、
商用のDB2でも同じ。
くくらない場合、自動的に全部大文字と解釈されるよ。だから常にクオートを
使わなければ問題は出ないはず。 SQLは基本的に大文字小文字の区別をしない。特に指定しなければ大文字になる。
のが規格なんだけど、実際のDBでそうでないものもある。だから誤解を生むんだね。 なるほど、そうでしたか。
ありがとうござます。
今までMySQLとPostgreSQLしか使ったことがないもので。 Oracleで言うところのrowidって、HSQLDBには無いですか?
全てのテーブルの各レコードに自動で割り当てられ、テーブルをまたいでも
一意性が保証されるIDです。 HSQLDBってデータを全部メモリ上にもってるの?
データファイルを見ると、SQL文が延々ならんでいるから、起動のときこれを
ぜんぶ読みこむんだろうけど。
そんでシャットダウンするときは、ぜんぶセーブするってこと?
create cached table(...); swing + hsql で秘密のデータベースを作ろうとしてたけど、
データベースにパスワード付けても.scriptファイル開けば全部見られちゃう。
バイナリ保存とか暗号化して保存はできないの? 本当に申し訳ありませんでした。
自己解決というか、自分が間違っていました。
スタンドアロンで使ってたので、create table ....... すればcashedテーブルになると思い込んでいました。
これではデフォルトのメモリテーブルになってしまい、.scriptファイルに全部残ってしまう(メモリなのに?)。
create cashed table ..... にしないといけないのですね!
でもsaのパスワードは.scriptに明記されてるけど、まぁいいや。 >168あたりからバックアップに関する書き込みがあったけど、
・「CREATE MEMORY TABLE」なテーブルだけなら、.scriptsをコピーすればOK
・「CREATE CACHED TABLE」なテーブルがある場合、.scriptsと.data、.propertiesの三つをコピー
でおk?
あと、shutdownされないとデータは(MEMORYでもCACHEDでも)保存されないのかな?
だとすると起動しなおしになるのでちと面倒だなぁ。……まぁ、いちいちCSVとかに落とすよりははるかに楽だけど。
オートコミットだっけか?
.propertiesになんか設定あって、
デフォルトでは、変更されたデータは瞬時に保存されるんじゃなかったっけ?
ドキュメントにその辺について詳しく書かれていたはずよ。
全部あいまいなレスでスマソ 一通りトランザクション済んだら、shutdown でよくね? >>270
>>272
遅resスマソ
shutdownしてもう一度コネクション張りなおすかなぁ……。
別アプリにして純粋にファイル操作としてコピーするっつー手もあるけど、どーせGUI付けろって言ってくるだろうしな(苦笑
ちなみにブツはEclipse RCP。3.1になってからかなり便利になったと思ふ。
んと、BIT型のデータ、getBoolean出来るのにsetBooleanできない。なぜ?
hsqldb.jarからUPDATEのSQL作って実行して、JDBCからgetBooleanするとちゃんと取得できるのだが、同じ場所からsetBooleanして実行すると反映されない。
同じ実行で弄った他のカラムの変更は反映されてるから、shutdownしてないとかゆーオチでも無いし……なんで?
INTEGRT型のIDフィールドを連番にしたいけど、皆さんはどうやってますか?
今はレコード追加する度に、IDフィールドの最大値+1でやってます。
もっとスマートな方法はないでしょうか…… >>275
自動連番ということ?
それなら列定義にIDENTITYを加えれば良いと思うよ。 >>276
ありがとうございました。
勉強不足でした。もっとSQLの勉強に励みます。 テーブル作るとき
create table person (
id integer identity primary key,
name varchar
)
レコード追加するとき
insert into person values (null, 'taro')
これでidがゼロから始まって自動連番になっていく。 HSQLDB Database Manager Swing のメニューバーのToolsの中に、dumpとrestoreがあるけど、
便利そうなんだけど、これ使えた人いる?どうやって使うの?
あと自前のプログラムからSQLコマンドでdumpとかrestoreできるの?
ドキュメント見ても載ってない。
上のほうでバックアップのことが書かれていたけど、付属のツールでやるほうが安心かと。 これってさ、JAVAアプリとかに組み込み可能なRDBなんだよね?
JAVAに組み込み可能なピュアjavaのOODBないの? ttp://journal.mycom.co.jp/cgi-bin/print?id=32005 H2がある昨今、HSQLのメリットって何だろう?
特に無条件新規の場合 >>288
∧,,∧ ∧,,∧
∧,,(´-ω-)(-ω-`)∧,,∧
( ´-ω)旦o) (o旦o(ω-` )
(_ o[( ´-) (-` )]o _)
└'ー-(_ )][( _)ー'┘
'ー'^ー' 'ー'^ー'
ソニンが日英合作映画に出演するとのこと
『女優』として『脱ぐ』ようです
作品としてはR18になるようですので期待しちゃいますね
http://pc11.2ch.net/test/read.cgi/mobile/1140247163/
>>288
`∧_∧
(´・ω・)
( つ旦O
と_)_)
ちょっと休憩。
HyperSQL 2.1 Released
The latest version 2.1 GA introduces enhancements in all areas.
It supports the widest range of SQL Standard features seen in any open source database engine.
We have reached SQL Standard conformance to almost full SQL-1992 Advanced Level and SQL:2008 core language features plus an extensive list of SQL:2008 optional features and many extensions.
Many enhancements have also been made to Java and SQL stored procedure and function support, and to other areas. 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
X03I48GDWS ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆