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

How to use MySQL in Spring and Hibernate background which currently uses HSQLDB

我有一个使用 Spring & Hibernate 创建的项目。本项目使用的数据库是HSQLDB。 (http://hsqldb.org/) Actually I haven't use that database earlier and no idea about it. This is the GitHub repository of the project. (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,是否需要做很多更改?

在您的 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>