将MySQL转换为H2

将MySQL转换为H2,mysql,spring,hibernate,h2,Mysql,Spring,Hibernate,H2,我正在从事一个遵循以下代码的项目: 下载代码的链接: 现在我真正想要的,不是MySQL,而是一个运行HSQL或H2的嵌入式数据库。所以我一直在做我自己的项目,试图实现这样一个系统 在教程代码中,他创建了一个数据库。然后h2+hibernates为他创建了未来的表——因此,如果我可以在不需要sql模式或任何设置的情况下完成这项工作,那就是创建。 因此,我已经摆脱了mySql maven依赖项,正在努力替换persistence-beans.xml 现在我必须用相关的h2或hsql版本替换我的数据源

我正在从事一个遵循以下代码的项目: 下载代码的链接:

现在我真正想要的,不是MySQL,而是一个运行HSQL或H2的嵌入式数据库。所以我一直在做我自己的项目,试图实现这样一个系统

在教程代码中,他创建了一个数据库。然后h2+hibernates为他创建了未来的表——因此,如果我可以在不需要sql模式或任何设置的情况下完成这项工作,那就是创建。 因此,我已经摆脱了mySql maven依赖项,正在努力替换persistence-beans.xml 现在我必须用相关的h2或hsql版本替换我的数据源。 这就是我得到的

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name ="driverClassName" value = "org.h2.driver"/>
    <property name = "url" value ="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" />
    <property name = "username" value = "sa" />
    <property name = "password" value = "" /> 
</bean>

// I also tried this (but again, having a schema with his code is tricky I’ve found

<jdbc:embedded-database id="dataSource" type="H2">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

其余的测试都在这个链接中:

您是否尝试过jdbc:h2:mem:test;MODE=MySQL;这也不起作用@SparkOnIt wolud如果你展示你的测试类会很有帮助,因为mysql中的许多功能与H2不同。你改变了hibernate方言吗?那是什么?在哪里@马丁弗雷
@ContextConfiguration(locations = "/persistence-beans.xml")
public class HibernateConfigurationTest extends AbstractJUnit4SpringContextTests {

    @Autowired
    private SessionFactory sessionFactory;

    @Test
    public void testHibernateConfiguration() {
        // Spring IOC container instantiated and prepared sessionFactory
        assertNotNull (sessionFactory); 
    }

}