将Hibernate与MS ACCESS 2007数据库一起使用(免费的JDBC驱动程序)

时间:2012-05-16 12:01:24

标签: hibernate ms-access jdbc reverse-engineering

1

我想在 MS Access 2007 数据库上使用Eclipse的 Hibernate 插件执行逆向工程操作。我被迫使用现有的MS Access 2007数据库。

一个简单的解决方案是购买HXTT。但我想使用免费驱动程序来完成我的工作。

所以我试着申请这篇文章: http://www.programmingforfuture.com/2011/06/how-to-use-ms-access-with-hibernate.html (那使用SQL Server方言和驱动程序sun.jdbc.odbc.JdbcOdbcDriver)

不幸的是我有一个错误,似乎没有人在互联网上:

Exception while generating code

Reason : 
org.hibernate.exception.GenericJDBCException: Error while reading primary key meta data for `c:/myaccessdb.mdb`.TableTest1

Reason : org.hibernate.exception.GenericJDBCException: Error while reading primary key meta data for `c:/myaccessdb.mdb`.TableTest1

我尝试更改MS Access DB上的主键(删除所有主键)或尝试使用只有一个没有主键的表在MS ACCESS上进行逆向工程,但我总是遇到问题。

2

我的工作目的是每天(每周)转移一个Oracle 11g数据库,其中包含来自现有数据库MS ACCESS 2007的数据。我想使用一个程序(Hibernate EJB)Java每周自动启动做数据传输。这是最好的解决方案吗?

配置:

  • sun.jdbc.odbc.JdbcOdbcDriver v ???
  • Hibernate v3.4
  • 的Eclipse

ps:如果您是HXTT开发商或卖家,请放纵我的帖子;)。通过让人们相信你的帮助赚钱,这很糟糕!


解决方案是使用Derby Client驱动程序,作为帖子中的解决方案: Does anyone know if Hibernate and java will work effectively with Access?

但需要澄清Rich Seller的答案。你能解释一下你的答案并解释你的配置(hibernate.cfg.xml,persistence.xml以及你在属性名称中使用的URL =" hibernate.connection.url")而不使用付费的HXTT驱动程序但是免费德比车手。

2 个答案:

答案 0 :(得分:1)

唯一可用的解决方案是连接你的JDBC驱动程序:

//Load the JDBC driver, useless with a Type 4 JDBC driver
Class.forName(DRIVER_NAME);

//To add specific properties such as a username/password pair
Properties connectionProperties = new Properties();

//Try to establish a connection to the database
connection = DriverManager.getConnection(DATABASE_URL, connectionProperties);

然后,让自由逆向工程成为可能...... 唯一的办法就是让entityManager成为你美丽的手。

玩得开心!

答案 1 :(得分:1)

根据Hibernate forum,HXTT驱动程序是目前可用于将Hibernate与MS Access一起使用的唯一解决方案。

相关问题