java - 如何以嵌入模式自动创建hsqldb

标签 java sql hibernate hsqldb

我目前使用 hibernate +hsqldb 开发一个 java 桌面应用程序 已经在嵌入模式下创建了一个 hsqldb 数据库,我的 hibernate 配置文件如下

<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:file:C:\Users\Desktop\project1\okbadb</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</property>
<event type="create">
</event>

  <properties>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
  </properties>
  </session-factory>

连接网址是本地的,取决于我的机器
我的问题是如何在每次安装我的应用程序时创建一个新数据库(在不同的机器上) 我如何使用 sql 脚本来实现此目的?

最佳答案

每次程序在不同的计算机上运行时,都会在您使用的绝对路径中创建数据库。

您可以在相对路径开头使用~ 在用户主目录的子目录中创建数据库。例如jdbc:hsqldb:file:~\project1\okbadb

如果数据库尚不存在,HSQLDB 将创建一个数据库。因此没有单独的命令来创建数据库。

关于java - 如何以嵌入模式自动创建hsqldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475018/

相关文章:

java - super 构造函数无法按我认为的方式工作

java - 捕获程序外的关键事件

java - adaptivethreshold 给出错误(opencv,java)

java - 使用 Logger 时出现 Hibernate MappingException

java - 以 .docx 或 .pdf 结尾的链接

mysql - 如何使用同一列中的数据创建 SQL View 作为单独的行?

mysql - 在 MySql 中,有没有一种方法可以将值与列中的数字进行比较?

sql - Oracle - 使用 to_date,如何将 varchar 转换为今天的日期

java - 在 Spring、Hibernate 中访问用户数据

java - 了解注解和 JPA(hibernate)