apachederbyを使用してファイルベースのデータベースで作業したいと思います。NetBeansをIDEとして使用して、このデータベースに接続して作成する方法を誰かが理解できるかどうか疑問に思いました。ダービーのマニュアルを調べてこれを理解しようとしましたが、「Embedded Derby JDBC Database Connection」しか得られませんでした。これはファイルベースのアプローチではないと言われ、どちらにしても接続は機能しなかったようです。どんな助けでも大歓迎です
4 に答える
作成するには、jdbcのURLは次のようになりますjdbc:derby:foo;create=true
。これにより、derbyシステムディレクトリにfooというデータベースが作成されます。ハードドライブの絶対位置に作成する場合は、絶対パスを指定します。jdbc:derby:/home/me/foo;create=true
。
データベースが作成されたら、同じURLでデータベースに接続するか、;create=true
パーツを削除することができます。
derbyシステムディレクトリは、システムプロパティを介して設定できますSystem.setProperty("derby.system.homeSystem.setProp", "/home/bar/whatever");
。ダービーデータベースを開始する前にこれを行う必要があると思いますが、後でそれを試みたことはありません。ダービーシステムをアプリのホームに設定し、相対データベースのURLを指定するとうまくいくことがわかりましたが、それは個人的な好みです。
確かに、使用したいドライバーはderby.jarに埋め込まれたドライバーです。十分な例が実行されているので「物事のコーディング側」に入るのではなく、コーディングを開始する前に、netbeans自体を使用してすべてを実行するのが好きです。
埋め込みアプローチを使用してwireshark/tcpdump / nmapファイルをデータベースエントリに変換するため、少し異なるアプローチを使用します。
インストールされたバージョンではなく、最新の安定したバージョンのDerbyを使用することを好むため、少し異なるアプローチを使用して、データベースをar / wデータディレクトリのファイル内の任意の場所に配置するだけでなく、必要なバージョンを使用できます。システム。
- 作成:mkdir -p $ HOME / opt / derbyおよびcd〜/ opt/derby。
- db.apache.orgから最新バージョンをダウンロードし、バンドル解除は$ HOME / opt /derby/にあります
- シンボリックリンクを作成します:ln -s
pwd
/ versionpwd
/latest。 - シンボリックリンクを作成します:ln -s
pwd
/ latestpwd
- スタートアップNetBeans。
これ以降、NetBeansですべてを実行できます。
- Antライブラリを作成し、「ASF-Derby-Emb」と呼びます。[ツール]->[Antライブラリ]->[新しいライブラリ]。
- 設定パネルで、クラスパスを/home/[loginid]/opt/derby/default/lib/derby.jarに設定し、オプションでderbytools.jarを追加します。
- [ソース]タブをクリックして、ダウンロードした場合はソースコードへのパスを追加します。
- javadocタブをクリックし、/ home / [loginid] / opt / derby / default/javadocsにあります
コーディングに取り掛かったら、ASF-Derby-Embライブラリを追加するだけで、「dist」に自動的にコピーされます。
次に、JavaDBをセットアップします。
- [サービス]タブを設定します:[ウィンドウ]-> [サービス]を選択し、そのタブを選択します。
- JavaDBを選択し、右クリックして、実行中のJavaDBを停止します。
- JavaDBを選択し、右クリックして[プロパティ]メニューエントリをクリックすると、プロパティダイアログが表示されます。
- $ HOME / opt / derby/defaultにあるJavaDBインストールディレクトリを参照します。
- データベースのインストールディレクトリの場所をそのままにするか、配置するディレクトリを参照しますが、読み取り/書き込みアクセス権があることを確認してください。
- [OK]をクリックすると、別のJavaDBのインストール場所とデータベースの場所が表示されます。
データベースの場所を変更するだけで、データベースを好きな場所に配置できます。または、URLと同じことをコードで実行できます:jdbc:derby://データベースロケーションディレクトリ。
とにかく、データベースをセットアップできるようになりました。
- JavaDBを選択し、右クリックして[データベースの作成]を選択し、ダイアログに入力するだけで、プロパティファイルで設定されたディレクトリでデータベースが初期化されます。
- 接続を作成します。JavaDBを選択してから、作成されたデータベースの名前を選択します。
この時点から、3つの選択肢があります。
- 何もせず、テーブルなどの作成に必要なコードを作成します。
- プロジェクトを作成し、sqlというトップレベルのプロジェクトディレクトリを作成し、テーブルなどを定義するすべてのsqlスクリプトをそのディレクトリに配置します。
- '組み込み機能を使用します:Service-> jdbc:derby:// ??? 表示され、必要なSQLを入力できる機能を使用してテーブルを作成します。
個人的には、(2)最初は最善のアプローチだと思います。プロジェクトの下で開くだけで.sql拡張子を持つ既存のSQLスクリプトがある場合、それらはSQLエディターにロードされ、そこで実行できます。
または、(3)を使用して、結果のスクリプトを保存することもできます。
とにかく、コーディングが始まる前に多くのものを作成することができます。それを行う方法はたくさんあります。コーディングする前にすべてを作成したほうがいいです。テストケースの開発がはるかに簡単になり、前述のものを使用して、NetBeansに飛び込んだり飛び出したりして変更する必要がなくなります。
NetBeans 7.1.2をダウンロードすると、Glassfishアプリサーバーに含まれる「すべて」のパッケージが提供されます。Glassfishをインストールした後、IDEで[サービス]タブ> [データベースの展開]を選択できるようになり、JavaDBが表示されます。R. Java DBをクリックして、[サーバーの開始]を選択します。次にR.もう一度クリックして、[データベースの作成]を選択します。db名、ユーザー、およびパスワードを入力します。ところで、私は通常、ユーザーとパスワードの両方にAPPを使用します。これは、APPがデフォルトのスキーマにもなり、本番環境で何も変更する必要がないためです。
これで、Java DBグループに、作成した新しいデータベースが表示されます。R.それをクリックして、接続を選択します。[データベース]グループの下に接続アイテムが表示されます。この項目を展開すると、APPスキーマがデフォルトのスキーマであることを示す太字で表示されます。それとRを展開します。テーブルをクリックして[テーブルの作成]を選択すると、テーブルの作成に役立つUIが表示されます。すべてのテーブルが作成されるまで繰り返します。ideを使用してテーブルを作成する他の方法は、テーブルを右クリックし、[コマンドの実行]を選択して、DDLを実行してテーブルスキーマを定義できるようにすることです。これは、スクリプトを.sqlファイルとして保存して、dbを削除し、必要に応じて再実行できるようにすることで、dbを作成する方法です。
これは、derbyでテーブルを作成するために使用するdbinit.sqlスクリプトの例です。
create table usertable (
username varchar(128) NOT NULL CONSTRAINT USER_PK PRIMARY KEY ,
password varchar(128) NOT NULL,
email varchar(128) NOT NULL,
firstname varchar(128) NOT NULL,
lastname varchar(128) NOT NULL
);
create table grouptable(
username varchar(128) NOT NULL,
groupid varchar(128) NOT NULL,
CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid),
CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username)
ON DELETE CASCADE ON UPDATE RESTRICT
);
insert into usertable(username,password,firstname,lastname)
values ('admin', '21232f297a57a5a743894a0e4a801fc3','','');
insert into grouptable(username,groupid) values ('admin', 'USER');
insert into grouptable(username,groupid) values ('admin', 'ADMIN');
作成したデータベースは、データベースを右クリックして簡単に削除できます。R。削除するデータベースをクリックして、[削除]を選択します。スクリプトを再利用して再生成します。
お役に立てれば!:)
Derbyにファイルベースのデータベースが必要な場合は、Derbyをダウンロードする必要があります。
ファイルを解凍します。binディレクトリ内でstartNetworkServer.batを実行します。ポート番号1527をリッスンするダービーサーバーを起動します。
今あなたのJavaコードで:
DriverName = org.apache.derby.jdbc.ClientDriver
ConnectionString = jdbc:derby:// localhost:1527 / schema_name; create = true
Morover、oracleで行うようにderbyDBにクエリを実行することもできます。
binディレクトリ内にあるij.batを実行します。次にプロンプトで:
connect'ここに接続URLを指定してください'
そして、OracleプロンプトのようにSQLクエリを実行できます。
別のポートでderbyサーバーを実行する場合は、cmdで次のコマンドを実行します。
startnetworkserver.bat -p 1234