`
zhouxianglh
  • 浏览: 268143 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

(2)Hibernate3.2 中的类继承关系

阅读更多

主要内容:

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>
分享到:
评论

相关推荐

    Hibernate3.2官方中文参考手册 高清晰 pdf

    Hibernate 是一个开源的对象关系映射(ORM)框架,用于 Java 应用程序中的数据库交互。它提供了一种将 Java 对象映射到数据库表的方式,并简化了数据持久化的操作。Hibernate 3.2 版本作为该系列的重要版本之一,在...

    hibernate3.2用到的jar包

    5. **实体类(Entity)**:在Hibernate中,实体类代表数据库表,通过注解或XML配置文件与表建立映射关系。实体类需要继承`Serializable`接口,以支持序列化。 6. **持久化(Persistence)**:通过`Session.save()`,...

    Hibernate3.2中文参考文档

    总之,《Hibernate3.2中文参考文档》是一份全面、深入的教程,它不仅介绍了Hibernate的基础知识,还涵盖了框架的高级特性,对于任何希望在Java项目中使用Hibernate的开发者来说,都是不可或缺的学习资源。...

    Hibernate3.2 中文文档.

    Hibernate 3.2 是一款非常重要的Java对象关系映射(ORM)框架,它在Java开发领域中被广泛使用,特别是在企业级应用中。这个中文文档是Hibernate 3.2英文版的翻译,旨在帮助中国开发者更好地理解和运用Hibernate框架...

    Hibernate3.2 中文参考手册

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者在Java应用程序中使用对象模型来操作数据库,而无需直接编写SQL语句。Hibernate 3.2是该框架的一个重要版本,带来了许多改进和新特性,使得Java开发...

    hibernate3.2源码

    4. **Entity类和持久化**:在Hibernate中,业务对象被称为实体类,通常继承自Hibernate的Serializable接口,并使用@Entity注解标记。这些类的实例可以通过Session进行持久化操作。 5. **HQL和Criteria查询**:...

    Hibernate3.2.zip

    6. **Inheritance Mapping**:对于继承关系的映射,Hibernate 提供了单表继承(Single Table Inheritance)、联合继承( Joined Table Inheritance)和表 per 类继承(Table per Concrete Class Inheritance)三种...

    hibernate 3.2中文手册 中文文档

    - 解释Hibernate如何支持Java中的继承关系,并映射到数据库表。 - **4.3 实现`equals()`和`hashCode()`** - 讲解为何持久化类应该重写这两个方法,以及如何正确实现它们。 - **4.4 动态模型(Dynamicmodels)** -...

    Hibernate3.2官方中文参考手册.rar

    阅读《Hibernate3.2官方中文参考手册.pdf》将帮助开发者深入理解Hibernate的工作方式,提升数据库操作的效率,减少程序中的错误,并为构建高质量的Java企业级应用打下坚实的基础。配合“E书说明.txt”,用户可以了解...

    Hibernate3.2中文参考文档.rar

    2. **配置与初始化**:文档会介绍如何设置Hibernate配置文件,包括数据源、连接池、实体类映射等信息,以及如何通过SessionFactory创建和初始化Session对象。 3. **实体类与表映射**:Hibernate使用XML或注解来定义...

    hibernate3.2_src官方源码

    在这个`hibernate3.2_src`官方源码中,我们可以深入理解Hibernate的核心机制,学习如何实现数据的持久化以及与数据库的交互。 1. **对象关系映射(ORM)**:Hibernate作为ORM工具,通过映射Java类到数据库表,将...

    hibernate 3.2 中文参考手册

    本文档主要介绍了Hibernate 3.2版本的相关内容和技术细节,包括但不限于Hibernate的基本概念、配置方法、核心API介绍以及如何使用Hibernate进行对象关系映射(ORM)等高级特性。对于想要深入了解Hibernate框架的开发...

    struts2+hibernate3.2+spring2.0帮助文档

    Struts2、Hibernate3.2和Spring2.0是Java Web开发中三个非常重要的开源框架,它们各自在不同的层面上提供了强大的功能,并且可以协同工作,构建高效、灵活的Web应用。 Struts2是一个MVC(Model-View-Controller)...

    Hibernate3.2官方中文参考手册

    11. **多态性支持**:在继承关系中,Hibernate可以自动处理子类的多态性,使得数据库操作更加便捷。 12. **懒加载和立即加载**:懒加载是一种延迟加载机制,仅在需要时加载关联对象,而立即加载则是在获取主对象时...

    Hibernate3.2中文参考文档(CHM)

    《Hibernate3.2中文参考文档》是针对Java开发者的一份宝贵资源,主要涵盖了Hibernate框架的3.2版本的详细信息。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它允许开发人员在Java应用程序中使用面向对象的...

    hibernate3.2参考手册

    2. **实体映射**:讲解如何通过Hibernate的XML映射文件(hbm.xml)或注解方式将Java类映射到数据库表,包括属性、关联、继承等关系的配置。 3. **Session接口**:作为与数据库交互的主要接口,Session提供了增删...

Global site tag (gtag.js) - Google Analytics