Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冬眠+;嵌入式数据库-安装_Java_Database_Hibernate - Fatal编程技术网

Java 冬眠+;嵌入式数据库-安装

Java 冬眠+;嵌入式数据库-安装,java,database,hibernate,Java,Database,Hibernate,我使用Hibernate创建了Java应用程序,配置如下: <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:

我使用Hibernate创建了Java应用程序,配置如下:

<hibernate-configuration>
 <session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306     /bee</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    <property name="connection.username">root</property>
    <property name="connection.password"/>
    <property name="hibernate.connection.charSet">UTF-8</property>
    <property name="hibernate.connection.characterEncoding">UTF-8</property>
    <property name="hibernate.connection.useUnicode">true</property>
    <mapping resource="DatabaseMapping.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306     /蜜蜂
org.hibernate.dialogue.mysqldialogue
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
根
UTF-8
UTF-8
真的
当Iam使用jdbc时,一切正常:mysql://localhost...,但现在我需要将数据库嵌入到我的应用程序中。我应该使用哪个数据库?我需要有我的所有数据存储和加载后,启动应用程序,更新数据,保存,删除它。我使用HQL查询或SQL查询


嵌入数据库的最简单方法是什么?我不想更改我的查询。只更改hibernate配置并将其设置为嵌入式数据库是可以的,是吗?

类似hibernate的ORM的优点之一是保护您免受数据库差异的影响。您可以使用以下任一项作为嵌入式DB解决方案。只需更改hibernate cfg文件中的方言、驱动程序和URL即可

  • 看一下在嵌入式模式下使用数据库

    <hibernate-configuration>
     <session-factory>
        <property name="hibernate.connection.driver_class">org.h2.Driver</property>
        <property name="hibernate.connection.url">jdbc:h2:~/test</property>
        <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"/>
        <property name="hibernate.connection.charSet">UTF-8</property>
        <property name="hibernate.connection.characterEncoding">UTF-8</property>
        <property name="hibernate.connection.useUnicode">true</property>
        <property name="hibernate.default_schema">PUBLIC</property>
        <mapping resource="DatabaseMapping.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>
    
    
    org.h2.Driver
    jdbc:h2:~/test
    org.hibernate.dial.h2方言
    org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    sa
    UTF-8
    UTF-8
    真的
    公开的
    
    < /代码> 如果您不想更改查询,请考虑MySQL MXJ(嵌入式MySQL)


    它尚未处于积极开发阶段(感谢Oracle)。但是它是完全可用的,并且连接器是开源的。嵌入不同版本的mysql很简单,但是最新的mxj连接器嵌入了5.5.9

    我无法让Hibernate使用SQLite,这是我下一个项目的第一个数据库选项。有人能让这个组合起作用吗?如果是这样的话,请发布一系列的步骤。同时,我将尝试在Hibernate工作的情况下获取H2。谢谢据我所知,sqlite不再受hibernate支持。我花了很多时间试图让它们工作,但没有成功。MariaDB与mysql兼容,有一个项目可以使其嵌入Java项目中: