2012-05-19 13 views
5

私は、ファイルベースのデータベースでapache derbyを使用して作業したいと考えています。 誰かがどのように接続するかを確認できるかどうか疑問に思っていた&は、このデータベースをnetbeansをIDEとして使用して作成します。 私はこれを理解しようとしているderbyのマニュアルを通過しましたが、私が得たのは「Embedded Derby JDBC Database Connection」でした。ファイルベースのアプローチではないと言われていましたが、 。 助けを歓迎しますファイルベースのDerbyデータベースに接続

+0

「Embedded Derby JDBC DB接続」は、探しているソリューションだと思います。私は現在のNetBeans IDE UIを使ってDerbyを操作する方法を説明しました。どちらの方法でも、データは最終的にファイルに保存されます。主な違いは、組み込みルートを選択するか、クライアントサーバールートで複数のクライアントが同時にdbにアクセスできるようにするためにホストサーバーのルートにポートが必要なクライアントサーバールートを選択するかです。 – simgineer

答えて

1

は、NetBeans 7.1.2をダウンロードし、-p "すべて"パッケージでは、glassfishアプリケーションサーバーがインストールされます。 w/glassfishをインストールした後、IDEで[Services]タブ> [Expand Databases]を選択すると、Java DBが表示されます。 R. Java DBをクリックし、Start Serverを選択します。次に、Rをもう一度クリックし、「データベースの作成」を選択します。 db名、ユーザー、パスワードを入力します。 BTW私は通常、ユーザーとパスワードの両方のためにAPPを使用しています。これはデフォルトのスキーマにもなり、プロダクション環境のために何かを変更する必要はありません。

Java DBグループには、作成した新しいデータベースが表示されます。 Rをクリックして接続を選択します。 [データベース]グループの下に接続項目が表示されます。この項目を展開すると、APPスキーマがデフォルトのスキーマであることを太字で示しています。これを展開し、Rをクリックします。テーブルをクリックしてテーブルを作成を選択すると、テーブルを作成するのに役立つUIが表示されます。すべてのテーブルが作成されるまで繰り返します。 IDEを使用してテーブルを作成する他の方法は、テーブルを右クリックして[Execute Command]を選択すると、DDLを実行してテーブルスキーマを定義できます。これは、dbを削除して必要に応じて再度実行できるように、私のスクリプトを.sqlファイルとして保存することで、dbの作成を行う方法です。

次は、私がderbyでテーブルを作成するために使用するmy 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'); 

データベースを右クリックし、削除するデータベースを右クリックして削除を選択して、簡単に削除できます。削除を選択します。スクリプトを再利用して再生成します。

enter image description here

は、この情報がお役に立てば幸い! :)

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");。私はderbyデータベースを起動する前にこれを行う必要があると思いますが、後でそれをやろうとはしませんでした。私は、アプリケーションのためのダービーシステムのホームを設定し、より良い仕事に相対的なデータベースのURLを指定したが、それは個人的な好みです。あなたがダービーで、ファイルベースのデータベースを持つようにしたい場合は

+0

jdbcはファイルベースのバージョンですか? –

+0

はい、Javaでは、JDBC経由でDerbyと常にインターフェイスします。 jdbc:derby:は埋め込み接続のプレフィックスです。これは、ネットワークデータベース接続の場合とは異なります。 – Bill

+0

最初に答えをいただきありがとうございます.2番目はデータベースに接続することができず、最初にデータベースを定義する必要があります.netbeansインターフェイスを使って行いました。それ以外の場合)、jdbc:derby:history; create = trueのDBのURLを私に与えました。私はすべてのderby jarファイルをプロジェクトの "lib"ディレクトリに移動しました。私はまだ "適切なドライバが見つかりませんでした"というエラーが出るので、他のフォーラムでチェックしましたが、動作しているとは思われませんでした。私はそれがディレクトリと関係があると思うが、私はそれを理解することはできません.. –

0

、あなたはDerby

は、ファイルを解凍し、ダウンロードしてください。 binディレクトリ内でstartNetworkServer.batを実行します。 ポート1527をlistenするderbyサーバを起動します。

にDriverName = org.apache.derby.jdbc.ClientDriver

のConnectionString = JDBC:ダービー:// localhostを:Javaコードで今すぐ

1527/SCHEMA_NAME;作成=真

Moroverでは、oracleで行ったようにDerby DBを照会することもできます。

binディレクトリ内にあるij.batを実行します。その後、プロンプト上 :

接続

'ここに接続URLを指定する' とは、OracleのプロンプトのようなSQLクエリを発射することができます。あなたが別のポートでダービーサーバを実行したい場合には

、CMDで次のコマンドを実行します。

startnetworkserver.bat 1234

2

もっとも、使用したいドライバは、derby.jarの組み込みドライバです。十分な例があるので「事のコーディング側」に入るのではなく、コードを開始する前にすべてを行うためにnetbeansを使用するのが好きです。

私はwireshark/tcpdump/nmapファイルをデータベースエントリに変換する組み込みのアプローチを使用しているので、私は多少異なるアプローチを使用しています。

インストールされているバージョンの代わりに最新の安定版Derbyが好きなので、私は希望のバージョンを使用してデータベースをar/wデータディレクトリに置くことができるように、ファイルシステムにしたい。

  1. 作成:mkdir -p $ HOME/opt/derbyとcd〜/ opt/derby。
  2. db.apache.orgとUNBUNDLEから最新バージョンをダウンロードして$ HOMEは/ opt /ダービーにある/
  3. シンボリックリンクを作成します。ln -s pwd/バージョンpwd /最新の。
  4. シンボリックリンクを作成します。ln -s pwd/latest pwd
  5. スタートアップnetbeans。あなたがNetBeansですべてを行うことができますここから

  1. Antのライブラリを作成し、それを呼び出す "ASF-ダービー-EMB。":[ツール] - >アリLibraries->新規ライブラリ。
  2. 設定パネルでクラスパスを/home/[loginid]/opt/derby/default/lib/derby.jarに設定し、必要に応じてderbytools.jarを追加します。
  3. ソースタブをクリックし、ダウンロードした場合はソースコードのパスに追加します。
  4. のJavadoc]タブをクリックし、および/家庭内/ [ログインID]は/ opt /ダービー/デフォルト/ javadocを

あなたがコーディングに入るときに、ちょうどASF-ダービー-EMBライブラリに追加しますあなたの 'dist'に自動的にコピーされます。

JavaDBをセットアップしました。

  1. [サービス]タブ:[ウィンドウ] - > [サービス]を設定し、そのタブを選択します。
  2. JavaDBを選択し、右クリックして実行中のJavaDBを停止します。
  3. JavaDBを選択し、右クリックしてプロパティメニューのエントリをクリックすると、プロパティダイアログが表示されます。
  4. $ HOME/opt/derby/defaultにあるJavaDBのインストールディレクトリを参照してください。
  5. データベースのインストールディレクトリの場所をそのままにするか、置きたいディレクトリを参照しますが、読み取り/書き込みアクセス権があることを確認してください。
  6. 「OK」をクリックすると、JavaDBのインストールとデータベースの場所が異なります。

データベースの場所を変更するだけで、いつでもどこでもデータベースを配置できます。または、URLと同じコードをコードで実行できます。jdbc:derby:// データベースの場所ディレクトリ。

いずれにしても、データベースをセットアップできます。

  1. JavaDBを選択して右クリックし、[データベースの作成]を選択してダイアログを入力すると、プロパティファイルに設定されたディレクトリにデータベースが初期化されます。
  2. 接続を作成する:JavaDBを選択し、作成されたデータベースの名前を選択します。

この時点から3つの選択肢があります。

  1. は、プロジェクトを作成し、SQLと呼ばれるトップレベルのプロジェクトディレクトリを作成
  2. など、何もしないとテーブルを作成するために必要なコードを作成そのディレクトリにテーブルなどを定義するすべてのSQLスクリプトを配置します。
  3. 'builtinファシリティ:サービス - > jdbc:derby:// ???表示される機能を使用してテーブルを作成し、必要なSQLを入力できるようにします。

個人的には、(2)最初は最良のアプローチであることがわかりました。 .sql拡張子が付いた既存のSQLスクリプトがプロジェクトの下に開かれている場合は、SQLエディタにロードされて実行されます。

また、(3)を使用してスクリプトを保存することもできます。

どのようにしても、コーディングが始まる前に多くのことを作成できます。それを行う方法はたくさんあります。私はむしろすべてのコーディングを作成する前に作成する必要があります - それはテストケースを開発することをはるかに容易にし、前のものを使用して、ネットビーンに出入りして物を修正する必要はありません。