个人测试结果,还是使用方法一比较妥当。方法3出现了一个奇怪错误~~
1、Hibernate对于Access的支持
方法一:
下载两个jar包,一个是Access的JDBC驱动包;另一个是数据库方言包,里面有支持Access方言的类。
下载地址:http://www.hxtt.com/access.zip,http://www.hxtt.com/test/hibernate.zip。
配置如下:(URL那里可以使用相对路径)
xml 代码
<property name="hibernate.dialect">
com.hxtt.support.hibernate.HxttAccessDialect
</property>
<property name="hibernate.connection.url">
jdbc:access:///f:/mdbfiles/aaa.mdb
</property>
<property name="hibernate.connection.driver_class">
com.hxtt.sql.access.AccessDriver
</property>
方法二:
首先先要在ODBC里配置好我们的Access数据库,控制面板--->管理工具--->ODBC,选择系统DSN选项卡,按添加按钮,选Driver do Mircosoft Access(*.mdb),完成,在DataSource Name中输入你想要的名字比如hibtest,后面将用它来查找数据库。然后指定数据库所在位置就OK了。
Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。
xml 代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory name="java:/hibernate/HibernateFactory">
<property name="show_sql">true</property>
<property name="connection.driver_class">
sun.jdbc.odbc.JdbcOdbcDriver<!-- 这里是Access的JDBCdriverclass名 -->
</property>
<property name="connection.url">
jdbc:odbc:hibtest <!-- 这里是你刚才指定的数据库名字 -->
</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="dialect">
net.sf.hibernate.dialect.MySQLDialect <!-- 这里是Access的Dialect -->
</property>
<mapping resource="Customer.hbm.xml"/> <!-- 指定Customer的映射文件 -->
</session-factory>
</hibernate-configuration>
方法三: 这个方法,见我前一篇随笔,等于用jdbc去连接
1、<!-- SQL方言,Access和SQLserver相近,所以这么写,严格意义会出错,但是尝试简单连接时可以的 -->
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
2、<!-- JDBC驱动程序 -->
<property name="connection.driver_class">
sun.jdbc.odbc.JdbcOdbcDriver
</property>
3、<!-- JDBC URL ,要用绝对路径-->
<property name="connection.url">
jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:\STDateBase\student.mdb
</property>