-2

私は Grails についてかなりの知識を持っていますが、Grails を使用して SQL 開発者からテーブルからデータを読み取る方法を見つけることができません。これどうやってするの?

4

1 に答える 1

1

を使用する場合、デフォルトrun-appではデータベースはメモリ内にあるため (URL は「jdbc:h2:mem:devDb」のようなものです)、JVM の外部からデータベースに接続する方法はありません。「実際の」データベースに変更すると、Grails と別のクライアントの両方から接続できます。

H2 でこれを行うための 1 つのオプションは、スタンドアロン サーバーを起動することです。これには、H2 jar を見つける必要があります。これは、$HOME/.m2/repository または $HOME/.grails/ivy-cache の下にあります。たとえば、私のマシンでは、ポート 9092 (デフォルト) で開始するコマンドは次のとおりです。

java -cp /home/burt/.m2/repository/com/h2database/h2/1.3.170/h2-1.3.170.jar org.h2.tools.Server -tcp -tcpPort 9092

次に、URLをに変更grails-app/conf/DataSourceします

url = 'jdbc:h2:tcp://localhost:9092/dbname'

ここで、「dbname」は任意です。H2 は、サーバーごとに複数のデータベースを作成することをサポートしています。その後、Grails を起動すると、そのサーバーに接続され、別のクライアントからも接続できます。

これを行うより簡単な方法は、H2 の自動サーバー モードを使用することです。たとえば、この URL を使用します。

url = 'jdbc:h2:./dbname;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9092'

メモリ内データベースを起動しますが、外部から接続できるポート 9092 の TCP ソケットを使用します。これにより、jar を見つけて明示的にデータベース サーバーを起動する必要がなくなります。

設定の詳細については、 http://h2database.com/html/main.htmlを参照してください。

MySQL/PostgreSQL/Oracle/etc サーバーなど、別のサーバーを使用することもできます。

しかし、これだけ言っても、アクセスできる便利なデータベース クライアントが既に実行されています。Grails を起動すると、Web ブラウザにrun-app接続しhttp://localhost:8080/appname/dbconsoleてテーブル情報にアクセスしたり、SQL クエリを実行したりできます。これは H2 の機能ですが、JDBC で動作するため、使用するどのデータベースでも動作するため、使用できます。 MySQLなどで。詳細については、http: //grails.org/doc/latest/guide/conf.html#databaseConsoleを参照してください。

于 2013-07-11T02:23:25.423 に答える