Hibernate学习中应该注意什么问题?

Hibernate学习中应该注意什么问题?

一些在Hibernate学习中应该注意的问题

一. 包的引入

注意Hibernate包的引入(包的引入是学习每个开发框架都必须注意的问题),在不能确定用到哪个包时(特别是对于新手),建议把Hibernate/lib里面的包和hibernate2.jar全部引入.还有用于连接数据库的包(这个随情况而定。我用mysqlmysql-connector-java-3.0.14-production-bin.jar)。

二. 配置文件hibernate.cfg.xml的书写

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 2.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<!-- DO NOT EDIT: This is a generated file that is synchronized -->

<!-- by MyEclipse Hibernate tool integration. -->

<hibernate-configuration>

<session-factory>

<!-- properties -->

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.url">

jdbc:mysql://192.168.151.72:3306/quickstart

</property>

<property name="dialect">

net.sf.hibernate.dialect.MySQLDialect

</property>

<property name="hibernate.connection.password"></property>

<property name="hibernate.connection.driver_class">

com.mysql.jdbc.Driver

</property>

<!-- mapping files -->

<!-- The following mapping element was auto-generated in -->

<!-- order for this file to conform to the Hibernate DTD -->

<mapping resource="Customer.hbm.xml" />

</session-factory>

</hibernate-configuration>

配置文件中的前半部分是用来配置数据库连接池的(建议新手是用Hibernate自带的连接池配置比较简单。高手可以是用别的连接池-tomcat,struts,jboss的)

最后一句“<mapping resource="Customer.hbm.xml" />”则是用来指明表的配置文件的,形式如下:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD 2.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>

<class name="com.ln.hb.Customer" table="CUSTOMER">

<id name="id" column="CID">

<generator class="identity" />

</id>

<property name="username" column="USERNAME" />

<property name="password" column="PASSWORD" />

</class>

</hibernate-mapping>

在这个配置文件中,class标签是用来建立一个表到类的映射,如上例则是说明在com.ln.hb包下的Customer类与数据库里的CUSTOMER表建立了映射关系。Class标签的子标签:

1.Id是用来指明主键的,<generator class=" " />这是用来指明主键的生成机制,有如下可选项:

选项说明:

1) Assigned

由外部程序负责生成,无需Hibernate参与。

2) hilo

hi/lo 算法实现的主生成机制,需要外的数据表保存主

生成史状

3) seqhilo

hilo 似,通hi/lo 算法实现的主生成机制,只是主键历

保存在Sequence