Springが自動的に作成するHSQLデータベースがあります。
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:scheme.sql" /
</jdbc:embedded-database>
そして今、私はこのデータベースに接続したいと思います。どのアドレスを使用すべきかわからないので、私の質問はこれをどのように行うかです。
この組み込みHSQLデータベースはオールインメモリでインプロセスであるため、Spring Javaプロセスからのみアクセスできます。たとえば、チェックするために、別のツールからもデータベースにアクセスする場合データベースマネージャーを使用してコンテンツを作成する場合は、オールインメモリインスタンスを使用してHSQLDBサーバーを起動し、Springやその他のツールからサーバーに接続できます。
これについては、HSQLDBガイドで説明されています http://hsqldb.org/doc/2.0/guide/listeners-chapt.html
サーバーは次のコマンドで起動されます。
Java -cp ../lib/hsqldb.jar org.hsqldb.Server --database.0 mem:test --dbname.0 test
ユーザー名「SA」とパスワード「」でSpringデータソースを作成する必要があります。 Springデータソースを構成するためのデータベースドライバーとURL(同じマシンから)は次のとおりです。
org.hsqldb.jdbcDriver
jdbc:hsqldb:hsql://localhost/test
外部データベースを使用することをお勧めしますが、HSQLを使用する場合に備えて、これが役立つ場合があります http://Java.dzone.com/articles/spring-3-makes-use-embedded -簡単
組み込みデータベースはインメモリDBであり、SpringはHSQL、H2、およびDerbyをサポートしています。接続の詳細については、それぞれのサイトにアクセスできます。
H2については、 ここ を参照してください。 HSQLについては、 ここ および ここ を参照してください。
私が理解している限りでは、
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:scheme.sql" /
</jdbc:embedded-database>
インメモリDBを使用するため、外部からアクセスすることはできません。同じVMおよび同じクラスローダー内でこれにアクセスできます。
あなたはこのようにすることができます
final ApplicationContext ctx = new ClassPathXmlApplicationContext("dao-context.xml");
final DataSource dataSource = (DataSource)ctx.getBean("dataSource");
final Connection conn = dataSource.getConnection();
一部の人々にとって、十分な解決策は、h2コンソールを使用することです-ここで説明されているように:
スプリングブートのデフォルトのH2 jdbc接続(およびH2コンソール)
必要な場合にのみhsqldbドライバーを設定することを忘れないでください。このように、データベースを個別に起動する必要はありません。また、閲覧するために追加のソフトウェアをインストールする必要はありません。
通常の方法(SQL Developer、SQL Explorerなど)で組み込みデータベースに接続できます。デバッガーを使用して、Springで作成した組み込みデータベースBean(この場合はdataSource)のURLプロパティを確認しました。あなたのURLはjdbc:hsqldb:mem:dataSource
に沿ったものになると思います。