spring引导未创建hsqldb数据库

spring引导未创建hsqldb数据库,spring,hibernate,spring-mvc,spring-boot,spring-data-jpa,Spring,Hibernate,Spring Mvc,Spring Boot,Spring Data Jpa,在我当前的spring项目中,我开始使用springboot和springjpa来创建和管理HSQLDb数据库 我的项目中的文件夹src/main/resources中有这个hibernate.properties: # jdbc.X jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver jdbc.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb jdbc.user=sa jdbc.pass= # hi

在我当前的spring项目中,我开始使用springboot和springjpa来创建和管理HSQLDb数据库

我的项目中的文件夹
src/main/resources
中有这个
hibernate.properties

# jdbc.X
jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver
jdbc.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb
jdbc.user=sa
jdbc.pass=

# hibernate.X
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=create
my pom.xml具有以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>
运行应用程序时,我可以在控制台中看到:

2014-10-30 17:58:51.708  INFO 31413 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.6.Final}
2014-10-30 17:58:51.713  INFO 31413 --- [           main] org.hibernate.cfg.Environment            : HHH000205: Loaded properties from resource hibernate.properties: {jdbc.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb, hibernate.dialect=org.hibernate.dialect.HSQLDialect, hibernate.show_sql=false, jdbc.user=sa, hibernate.bytecode.use_reflection_optimizer=false, hibernate.hbm2ddl.auto=create, jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver, jdbc.pass=}
2014-10-30 17:58:51.714  INFO 31413 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2014-10-30 17:58:52.089  INFO 31413 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2014-10-30 17:58:52.191  INFO 31413 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
2014-10-30 17:58:52.385  INFO 31413 --- [           main] o.h.h.i.ast.ASTQueryTranslatorFactory    : HHH000397: Using ASTQueryTranslatorFactory
2014-10-30 17:58:52.838  INFO 31413 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000227: Running hbm2ddl schema export
2014-10-30 17:58:52.845  INFO 31413 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
但是没有在属性
jdbc.url
定义的路径中创建数据库


任何人都可以告诉我我做错了什么?

您最好使用Spring Boot来管理您的配置。它会将Hibernate配置传递给Hibernate,同时也会自动为您创建数据源和数据库

我会将您的所有配置移动到
src/main/resources/application.properties

# DataSource
spring.datasource.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb
spring.datasource.username=sa

# Hibernate
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create

我删除了一些不必要的配置。例如,将
drivercassname
配置为Spring Boot将从url和空数据源密码推断出它,因为这是默认值。您可以看到一些配置属性及其默认值的文档。

为什么您仍然试图不使用Spring Boot?你只是让事情变得更加困难。这是你问的所有问题中反复出现的主题。使用框架工作,而不是围绕或反对框架。如何做到这一点?我使用SpringBoot来管理对数据库的访问。您看到我在这里发布的代码了吗?您使用的是hibernate.properties,它是用于hibernate的,Spring Boot很乐意忽略它。您正在自己手动配置所有内容。Spring Boot没有读取hibernate.properties的
hibernate正在读取它。为什么要读取application.properties?当我运行应用程序时,spring引导会查找名为hibernate.properties的文件。另外,如果我使用所有选项或不使用,真的很重要吗?我的问题是,没有使用此配置创建数据库(当我使用HibernateConfig类手动配置它时,它正在工作)。Spring Boot不查找hibernate.properties,hibernate查找。您可以从问题中包含的日志输出中看到这一点。将配置放在application.properties中可以让Spring Boot为您配置,减少您必须自己进行的配置量。如果您对使用合理的默认值自动配置东西不感兴趣,而是更喜欢手动配置所有东西,那么您就错过了使用Spring Boot的一个主要原因。此线程有点旧,但仍然相关。我添加了url和用户名属性,以便让Spring生成一个文件数据库,它仍然使用内存中的。它创建testdb。。。但它没有使用它。什么是基于linux的URL或可执行文件的根?
# DataSource
spring.datasource.url=jdbc:hsqldb:file:/home/kleber/.webapp/testedb
spring.datasource.username=sa

# Hibernate
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create