Hibernate是持久层框架,用它进行数据库方面开发需要导入外部jar包,该框架所需的外部资源有:
(注意)除了这些基本的外部资源外,还需要osgi目录下的 geronimo-jta_1.1_spec-1.1.1.jar 该包用于事务处理,若没有该包,Hibernate的事务处理就会抛出异常
Hibernate的映射文件配置:
映射文件提供映射规则,对数据库中的表和实体类进行映射,通过操作实体类间接的对表进行操作
以数据库表user_info为例
命名映射规则为UserInfo.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Hibernate映射器 -->
<hibernate-mapping package="com.hibernate.entity">
<class name="UserInfo" table="user_info">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="identity"/>
</id>
<property name="userName" type="java.lang.String">
<column name="userName" length="16" not-null="true"/>
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" not-null="true"/>
</property>
<property name="regDate" type="java.util.Date">
<column name="regDate"/>
</property>
</class>
</hibernate-mapping>
<class>标签我个人习惯不配置catalog属性,因为本人觉得匹配哪个数据库是全局配置文件的工作,习惯把不同的任务分配到不同的配置文件去配置,当然这只是个人习惯
Hibernate的全局配置文件:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate?characterEncoding=utf8</property> <!--匹配hibernate数据库,设置字符编码为utf-8 -->
<!-- 设置方言(HQL转换成哪种数据库的sql语句) -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.password">zwj19970923</property>
<!-- 关联映射文件 -->
<mapping resource="com/hibernate/entity/UserInfo.hbm.xml"/> <!--映射文件 -->
</session-factory>
</hibernate-configuration>