主要内容:
1 简单的 Hibernate 的使用.
2 Hibernate 中 关于继承.
3 Hibernate 中的数据源.
个人认为类的继承和表的 one-to-one 很像。在这里就说说吧。
UserBO.hbm.xml 如下:
<hibernate-mapping>
<class name="com.isw2.entity.UserBO" table="t_user"
catalog="superclass" lazy="true">
<id column="userId" name="userId">
<generator class="native"></generator>
</id>
<!-- 用于在一张表里存储子类数据
<discriminator column="userType" type="string"></discriminator>
-->
<property name="userName" column="userName" type="string"
length="16">
</property>
<property name="userSex" column="userSex" type="string"
length="2">
</property>
<!-- 这里用于在多张表里存放子类信息 -->
<joined-subclass name="com.isw2.entity.BlueUserBO"
table="t_blueUser">
<key column="userId"></key>
<property name="userLevel" column="userLevel"
type="integer">
</property>
</joined-subclass>
<joined-subclass name="com.isw2.entity.RedUserBO"
table="t_redUser">
<key column="userId"></key>
<property name="userTime" column="userTime" type="date"></property>
</joined-subclass>
<!-- 子类在此说明,类状态由 discriminator 标签说明(用于在一张表中存储子类信息)
<subclass name="com.isw2.entity.BlueUserBO"
discriminator-value="blueUser">
<property name="userLevel" column="userLevel"
type="integer">
</property>
</subclass>
<subclass name="com.isw2.entity.RedUserBO"
discriminator-value="redUser">
<property name="userTime" column="userTime" type="date">
</property>
</subclass>
-->
</class>
这里用到两种方式:
1一张表中存放父类,子类。
2 单独存放 父类,子类.
它们的关系可以被 Hibernate 识别:
public void findAll() {
Session session = HibernateSessionFactory.getSession();
Query query = session.createQuery("from UserBO");
List list = query.list();
for (Object object : list) {
this.displayEntity(object);
}
session.close();
}
public void addUser(UserBO userBO) {
Session session = HibernateSessionFactory.getSession();
Transaction tr = session.beginTransaction();
session.save(userBO);
tr.commit();
session.close();
}
hibernate.cfg.xml 中的相关配制:
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/superclass
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">MySQL</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- 输出SQL语句 -->
<property name="show_sql">true</property>
<!-- 设置JDBC 连接池 需添加 c3p0-0.8.4.5.jar -->
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!-- 优化查询策略 -->
<!-- 每次执行语句数量 -->
<property name="jdbc.batch_size">50</property>
<!-- 返回查询结果数量 -->
<property name="jdbc.fetch_size">30</property>
<mapping resource="com/isw2/entity/UserBO.hbm.xml" />
</session-factory>
分享到:
相关推荐
Hibernate 是一个开源的对象关系映射(ORM)框架,用于 Java 应用程序中的数据库交互。它提供了一种将 Java 对象映射到数据库表的方式,并简化了数据持久化的操作。Hibernate 3.2 版本作为该系列的重要版本之一,在...
5. **实体类(Entity)**:在Hibernate中,实体类代表数据库表,通过注解或XML配置文件与表建立映射关系。实体类需要继承`Serializable`接口,以支持序列化。 6. **持久化(Persistence)**:通过`Session.save()`,...
总之,《Hibernate3.2中文参考文档》是一份全面、深入的教程,它不仅介绍了Hibernate的基础知识,还涵盖了框架的高级特性,对于任何希望在Java项目中使用Hibernate的开发者来说,都是不可或缺的学习资源。...
Hibernate 3.2 是一款非常重要的Java对象关系映射(ORM)框架,它在Java开发领域中被广泛使用,特别是在企业级应用中。这个中文文档是Hibernate 3.2英文版的翻译,旨在帮助中国开发者更好地理解和运用Hibernate框架...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者在Java应用程序中使用对象模型来操作数据库,而无需直接编写SQL语句。Hibernate 3.2是该框架的一个重要版本,带来了许多改进和新特性,使得Java开发...
4. **Entity类和持久化**:在Hibernate中,业务对象被称为实体类,通常继承自Hibernate的Serializable接口,并使用@Entity注解标记。这些类的实例可以通过Session进行持久化操作。 5. **HQL和Criteria查询**:...
6. **Inheritance Mapping**:对于继承关系的映射,Hibernate 提供了单表继承(Single Table Inheritance)、联合继承( Joined Table Inheritance)和表 per 类继承(Table per Concrete Class Inheritance)三种...
- 解释Hibernate如何支持Java中的继承关系,并映射到数据库表。 - **4.3 实现`equals()`和`hashCode()`** - 讲解为何持久化类应该重写这两个方法,以及如何正确实现它们。 - **4.4 动态模型(Dynamicmodels)** -...
阅读《Hibernate3.2官方中文参考手册.pdf》将帮助开发者深入理解Hibernate的工作方式,提升数据库操作的效率,减少程序中的错误,并为构建高质量的Java企业级应用打下坚实的基础。配合“E书说明.txt”,用户可以了解...
2. **配置与初始化**:文档会介绍如何设置Hibernate配置文件,包括数据源、连接池、实体类映射等信息,以及如何通过SessionFactory创建和初始化Session对象。 3. **实体类与表映射**:Hibernate使用XML或注解来定义...
在这个`hibernate3.2_src`官方源码中,我们可以深入理解Hibernate的核心机制,学习如何实现数据的持久化以及与数据库的交互。 1. **对象关系映射(ORM)**:Hibernate作为ORM工具,通过映射Java类到数据库表,将...
本文档主要介绍了Hibernate 3.2版本的相关内容和技术细节,包括但不限于Hibernate的基本概念、配置方法、核心API介绍以及如何使用Hibernate进行对象关系映射(ORM)等高级特性。对于想要深入了解Hibernate框架的开发...
Struts2、Hibernate3.2和Spring2.0是Java Web开发中三个非常重要的开源框架,它们各自在不同的层面上提供了强大的功能,并且可以协同工作,构建高效、灵活的Web应用。 Struts2是一个MVC(Model-View-Controller)...
11. **多态性支持**:在继承关系中,Hibernate可以自动处理子类的多态性,使得数据库操作更加便捷。 12. **懒加载和立即加载**:懒加载是一种延迟加载机制,仅在需要时加载关联对象,而立即加载则是在获取主对象时...
《Hibernate3.2中文参考文档》是针对Java开发者的一份宝贵资源,主要涵盖了Hibernate框架的3.2版本的详细信息。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它允许开发人员在Java应用程序中使用面向对象的...
2. **实体映射**:讲解如何通过Hibernate的XML映射文件(hbm.xml)或注解方式将Java类映射到数据库表,包括属性、关联、继承等关系的配置。 3. **Session接口**:作为与数据库交互的主要接口,Session提供了增删...