如何在当前使用 HSQLDB 的 Spring 和 Hibernate 后台使用 MySQL

Posted

技术标签:

【中文标题】如何在当前使用 HSQLDB 的 Spring 和 Hibernate 后台使用 MySQL【英文标题】:How to use MySQL in Spring and Hibernate background which currently uses HSQLDB 【发布时间】:2016-07-13 13:38:35 【问题描述】:

我有一个使用 Spring & Hibernate 创建的项目。本项目使用的数据库是HSQLDB。 (http://hsqldb.org/) 其实我之前没用过那个数据库,也不知道。这是项目的 GitHub 存储库。 (https://github.com/chanakaDe/spring-hibernate-20120924)。在pom.xml文件中,你可以看到hsql版本和一切。

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.2.8</version>
    <scope>runtime</scope>
</dependency>

有两件事我需要知道。我正在使用这个项目为会计系统创建一个 REST API。这种项目可以使用 HSQLDB 吗?性能和功能?

还有如何在这个项目中使用 mysql?有什么方法可以删除 HSQL 并使用 MYSQL 代替?如果需要将数据库更改为MYSQL,是否需要进行大量更改?

【问题讨论】:

这个问题的教程和答案随处可见。也许这会帮助***.com/questions/3020912/…。 【参考方案1】:

在你的 pom.xml 添加这个:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>$mysql-connector-java.version</version>
</dependency>

然后在你的 applicationContext.xml 上用这些替换那些 hsqldb 的东西:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="packagesToScan" value="The package the contains your entities here e.g. com.example.model" />
  <property name="jpaVendorAdapter">
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
  </property>
  <property name="jpaProperties">
     <props>
        <prop key="hibernate.hbm2ddl.auto">validate</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
     </props>
  </property>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/your-database-here" />
  <property name="username" value="db-username" />
  <property name="password" value="db-password" />
</bean>

【讨论】:

以上是关于如何在当前使用 HSQLDB 的 Spring 和 Hibernate 后台使用 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 测试中连接到内存中的 HSQLDB 以进行查询

使用 HSQLDB 作为 Spring、Hibernate 的可移植数据库

在 HSQLDB 上使用 Spring DBUnit 进行休眠和 Spring 数据 - 由于外键约束而无法删除

使用 JavaConfig 使用 Spring 应用程序的 HSQLDB 新手

如何从 hsqldb 中的日期检索当前日期和 day_of_month 以列出即将到来的生日

如何在 Spring 和 Hibernate 中使用两个数据库/数据源