Hibernate学习中应该注意什么问题?
Hibernate学习中应该注意什么问题?
一些在Hibernate学习中应该注意的问题
一. 包的引入
注意Hibernate包的引入(包的引入是学习每个开发框架都必须注意的问题),在不能确定用到哪个包时(特别是对于新手),建议把Hibernate/lib里面的包和hibernate2.jar全部引入.还有用于连接数据库的包(这个随情况而定。我用mysql的mysql-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)
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主
键生成历史状态。
3) seqhilo
与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史
状态保存在Sequence