如何从Spring启动应用程序启动服务器模式下的HSQLDB

Dre*_*mer 1 spring jdbc hsqldb

我有一个Spring引导应用程序,运行jpa数据和hsqldb 2.3.3(在Centos 7中),应用程序运行正常,但我想使用HSQLDB数据库管理器来检查数据状态,但它失败了:

application.properties:

spring.datasource.url=jdbc:hsqldb:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
Run Code Online (Sandbox Code Playgroud)

启动HSQLDB的命令:

java -cp /home/mycentos/.m2/repository/org/hsqldb/hsqldb/2.3.3/hsqldb-2.3.3.jar org.hsqldb.util.DatabaseManagerSwing
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用HSQLDB服务器模式登录,则会弹出Connection refused错误

jdbc:hsqldb:hsql://localhost/testdb
Run Code Online (Sandbox Code Playgroud)

如果我尝试登录内存中的数据库,我可以登录但不会显示表和数据

jdbc:hsqldb:hsql:testdb
Run Code Online (Sandbox Code Playgroud)

题:

  1. 如何使其工作?
  2. 我是否必须从tomcat部署文件夹中引用hsqldb.jar,因为这是应用程序使用的那个?
  3. 从Spring应用程序在服务器模式或内存模式下配置hsqldb的任何配置差异?
  4. 任何方法都可以使内存模式在这种情况下工作(通过db创建Spring引导检查数据)?

Bec*_*ang 5

要访问Spring启动应用程序创建的HSQL数据库,您必须启动HSQL服务器.例如,创建XML配置文件hsql_cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hqlServer" class="org.hsqldb.server.Server" init-method="start" destroy-method="stop">
    <property name="properties"><bean class="org.hsqldb.persist.HsqlProperties">
        <constructor-arg><props>
        <prop key="server.database.0">mem:testdb</prop>
        <prop key="server.dbname.0">testdb</prop><!--DB name for network connection-->
        <prop key="server.no_system_exit">true</prop>
        <prop key="server.port">9001</prop><!--default port is 9001 -->
        </props></constructor-arg>
    </bean></property>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)

以下是在主应用程序类中导入XML配置的示例.

@SpringBootApplication
@ImportResource(value="classpath:/package/hsql_cfg.xml")
public class MyApplication {
}
Run Code Online (Sandbox Code Playgroud)

HSQL服务器将以Spring启动应用程序启动.其他应用程序可以使用JDBC URL连接到HSQL服务器

JDBC:HSQLDB:HSQL:// IP地址:端口/ TESTDB

当然,hsqldb.jar加载JDBC驱动程序类是必需的.