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