2013-05-17 82 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