论坛首页 入门技术论坛

Hibernate知识辅导(2--1)

浏览 1322 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-03   最后修改:2008-12-03

持久化类映射文件在hibernate.cfg.xml中的配置

 

hibernate的配置文件hibernate.cfg.xml用于配置数据库的连接的信息,以及需要持久化的对象的xml映射文件的位置

hibernate.cfg.xml中使用<mapping resource="xml/Student.hbm.xml">这种方式来指名要持久化对象的映射文件。

 

SessionFactory是和一个数据库一一对应的,他只能对应一个hibernate.cfg.xml文件,一个hibernate.cfg.xml中只能配置一个数据库的连接信息。

 

POJO(普通的java类)

 

持久化对象和临时对象,持久化对象,即对象的信息在数据库中存在,在内存中也有。临时对象也就是新对象,没有同步到数据库。

 

Session,持久化管理器。

 

Hibernate的核心接口

 

Configuration,用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。

SessionFactory,用于创建Session对象。SessionFactory类的对象是线程安全。

Session,持久化管理器,对象级数据库操作,Session实现类的对象是线程步安全的。

 

Session的常用方法

save(Object o),将参数表中对象的信息保存到数据库中相应的表中。

update(Object o),将修改了的参数表中对象的数据库中保存的对应信息。

createOuery(String hql),用于查询的方法并返回一个Query对象。可以通过该对象获得查询的结果。这个方法的参数,是种特定的语句,也就是Hibernate的查询语言,它是基于了和对象的,在以后的课程中会讲到。

delete(Object o),删除参数表中对象的数据库中保存的对应信息。

 

Query,对对象作持久化操作或查询操作。

Query的常用方法

List list(),将所查询出的结果封装成结合返回。

setXxxx(Xxxx x),用于设置在Hql语句中设置的参数。

Object uniqueResult(),当确保查询的结果只有一格的时候用这方法获得查询的结果

 

Transaction ,用于管理操作事务。

 

hibernate.cfg.xml中的标签

<!DOCTYPE hibernate-configuration PUBLIC

     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

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

<hibernate-configuration>

     <session-factory>

     <property name="show_sql">true</property><!--显示sql语句-->

     <property name="format_sql">true</property><!--使显示的sql语句格式化-->

     <property name="dialect">....</property><!--使用的数据库方言信息-->

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

     <!--使用的数据库的驱动-->

     <property name="connection.url">....</property><!--连接数据库使用的url-->

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

     <!--连接数据库的用户名-->

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

     <!--连接数据库的密码-->

 

     <mapping resource="xxx/xxxx/Xxxxxx.hbm.xml"/>

     <!--引入的映射对象的xml文件的全路径及文件名-->

     </session-factory>

</hibernate-configuration>

 

对象映射文件

 

持久化类,映射到表的原则

 

类和数据库中的表相对应,类映射成表

类的属性和数据库表中的字段相对应,类的属性映射成表中字段

类与类间的关系和数据库中的主外间关系对应,类的关系映射成主外建关系

 

<hibernate-mapping package="XXX.XXX.XXX" auto-import="false">

<!--映射类所在的包-->

     <class name="Xxxxxx" table="Xxxxx"><!--类映射到表 -->

         <id name="studentId" column="studentId">

<!--生成标识对象唯一性的主键-->

              <generator class="assigned"/>

              <!--这里指定主键生成策略为用户指定-->

         </id>

         <property name="XXX" column="XXXX" type="string"/>

         <!--类的属性映射到表中的字段 -->

         <property name="homeAddress" column="homeAddress"/>

         <property name="schoolAddress" column="schoolAddress"/>

         <property name="brithday" column="brithday" type="data"/>

        <!--hibernate中其他类型可以自动识别只有java.sql.Data类型必须指名-->

    </class>   

</hibernate-mapping>

 

id生成方式(主键生成策略)

 

1,            序列sequence 只适用于Oracle

    

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

     <generator class="sequence">

<!--通过class属性指明使用sequence生成对象唯一标识-->

         <param name="sequence">person_seq</param><!--指定sequence-->

     </generator>

</id>

 

2,自增列,适用于SQLServerMySQL

 

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

     <generator class="identity"/>

</id>

 

3,取最大值加一

 

<id name="id" column="id" type="integer">

     <generator class="increment"/>

</id>

 

 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics