2013-05-17 108 views
3

我创建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> 

一切工作荫使用JDBC时细的:mysql://本地主机...,但现在我需要有数据库嵌入在我的应用程序中。我应该使用哪个数据库?我需要保存所有数据并在启动应用程序,更新数据,保存,删除之后加载它。我使用HQL查询或SQL查询。

嵌入数据库最简单的方法是什么?我不想改变我的疑问。只更改hibernate配置并将其设置为嵌入式数据库就可以了,有可能吗?

回答

3

像Hibernate这样的ORM的优点之一就是可以屏蔽数据库差异。您可以将以下任何一种用作嵌入式数据库解决方案。只需在hibernate cfg文件中更改方言,驱动程序和URL即可。

  1. H2
  2. SQLite
  3. HSQLDB
+1

我无法让Hibernate与SQLite一起工作,这是我第一次选择数据库到我的下一个项目。有没有人能够得到该组合的工作?如果是这样,请发布一系列步骤来完成此操作。同时我会尝试让Hibernate工作。谢谢! –

1

哈瓦看看在嵌入模式

<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> 
0

使用H2数据库如果你不想改变你的查询,考虑mysql-mxj(嵌入式mysql)http://dev.mysql.com/doc/connector-mxj/en/connector-mxj.html

它没有处于积极的发展阶段(感谢Oracle)。但是完全可用且连接器是开源的。嵌入不同版本的mysql是微不足道的,但最新的mxj连接器嵌入5.5.9

+0

未找到页面:( –

+0

MariaDB与MySQL兼容,有一个项目可以将它嵌入Java项目中:https://github.com/vorburger/MariaDB4j – Quaternion