2012-03-13 5 views
0

私はこのかなり大きなプロジェクトを持っているので、実行時にさまざまな時点でデータベーススキーマを作成しなければならず、新たに作成されたスキーマを指す接続も必要です。これは混乱のように思えるかもしれませんが、アプリケーションはかなり大きく、分散しており、マルチエージェントなので、各エージェントはそのような接続の1つを処理する必要があります。どのように私は、実行時にスキーマを作成することができますJAVAを使用して実行時に複数のdbスキーマを作成する方法は?

1):質問(複数可)を述べるために再び

2)Javaエージェントの内部で新しい接続文字列を取得する方法は?私は、デフォルトの接続をinstate、と私は今見つけることができないよう、いくつかの方法を使用して、実行時にそれを変更する必要があることを述べたいくつかの例を見てきました

...

P.S.私はこの問題のJDBCソリューションを好むだろう:)しかし、私はそれを試してうれしいだろう代替がある場合。

+0

_Why_実行時に**スキーマ**を作成する必要がありますか?これは通常の業務中ですか?そうするためには、特定の特権が必要です(** ALL **が可能な場合)**あなたがアクセスを配布したくない** - これはインストールプロセスの目的です。 –

+0

私は自動的にいくつかのテストを実行し、テストが完了した後にそれらをドロップするスキーマを作成する必要があります。問題は、ユーザーが.sqlファイルまたはスキーマの説明を含むいくつかの.xmlファイルをアップロードするときに作成する必要があるスキーマを知っていることです。 –

+0

...どのようなテストを実行する予定ですか?インメモリデータベースは、通常、(少なくとも初期の)テストに使用されます。スキーマが外部で変更されている場合、スキーマを検証する能力は限られていますが、 –

答えて

1

これは、使用しているデータベースのビットによって異なります。スキーマを作成するには、通常、適切な特権(スキーマの作成)でログインしている接続でDDLを実行する必要があります。オラクルでは、新しいスキーマへの接続here

続きを読む

connection.createStatement().executeUpdate("CREATE USER test IDENTIFIED BY somepassword"); 

ような何かをするだろう(オラクルでは、ユーザースキーマ同じである)新を供給するだけです接続を開くときにユーザーの資格情報が表示されます。

MySQLでは、データベースの名前を追加(、MySQLではデータベース = スキーマ)を

connection.createStatement().executeUpdate("CREATE DATABASE test"); 

のようなものが新しいスキーマに接続するよりhere

読むだろうmysql://myserver/testのように接続URLの最後に追加します。

+0

ヒントはありがとうございますが、私の問題は解決しません。私はそれについて私のメインポストにいくつかのコメントを追加しました。 –

+0

それでは、あなたの問題は何ですか?私はあなたのためにあなたのアプリケーションを書くつもりはありません(私はそれらの種類のもののために課金;))。あなたはあなたの問題についてもう少し具体的にする必要があります。私が具体的に言うと、詳細な要件分析を投稿するという意味ではありません。私はあなたが試みたコード/技術を意味します。 – pap

+0

私の質問のコメントを読んでください、私はそれらが私がする必要があることについての十分な情報を提供すると思います。私は、新しく作成されたスキーマをロードする部分だけのコードは必要ありません。 –