锁定老帖子 主题:Hibernate知识辅导(2--1)
精华帖 (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,自增列,适用于SQLServer和MySQL
<id name="id" column="id"> <generator class="identity"/> </id>
3,取最大值加一
<id name="id" column="id" type="integer"> <generator class="increment"/> </id>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1321 次