我有一个Spring自动为我创建的HSQL数据库:
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:scheme.sql" /
</jdbc:embedded-database>
现在我想连接到这个数据库。我的问题是如何做到这一点,因为我不知道应该使用哪个地址。
答案 0 :(得分:18)
这个嵌入式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
您需要使用用户名&#34; SA&#34;创建一个Spring数据源。和密码&#34;&#34;。用于配置Spring数据源的数据库驱动程序和URL(来自同一台机器)是:
org.hsqldb.jdbcDriver
jdbc:hsqldb:hsql://localhost/test
答案 1 :(得分:6)
我建议您使用外部数据库,但是如果您想使用HSQL,那么这可能会对您有所帮助http://java.dzone.com/articles/spring-3-makes-use-embedded-easy
答案 2 :(得分:2)
嵌入式数据库是内存数据库,Spring支持HSQL,H2和Derby。您可以访问各自的站点以获取连接详细信息。
对于H2,请参阅here。 对于HSQL,请参阅here和here。
据我了解,
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:scheme.sql" /
</jdbc:embedded-database>
使用内存数据库,因此无法从外部访问。您将能够在同一个VM和相同的类加载器中访问它。
答案 3 :(得分:1)
您可以以正常方式连接到嵌入式数据库,(SQL Developer,SQL Explorer等);我使用我的调试器来查看我使用Spring创建的嵌入式数据库bean中的URL属性,在您的情况下是dataSource。我认为你的网址会像jdbc:hsqldb:mem:dataSource
一样。
答案 4 :(得分:0)
你可以这样做
final ApplicationContext ctx = new ClassPathXmlApplicationContext("dao-context.xml");
final DataSource dataSource = (DataSource)ctx.getBean("dataSource");
final Connection conn = dataSource.getConnection();
答案 5 :(得分:0)
对于某些人来说,一个充分的解决方案是使用h2控制台 - 如下所述:
spring boot default H2 jdbc connection (and H2 console)
您必须记住在需要的地方设置hsqldb驱动程序。这样,数据库不必单独启动。您也不必安装任何其他软件来浏览它。