`
heimeiyingwang
  • 浏览: 94939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate知识辅导(4--3)

阅读更多

所有类建一个表的映射文件

<hibernate-mapping package="alan.hbn.inheritance.entity">

  <class name="Computer" table="computer_tph" discriminator-value="c">

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

      <generator class="native" />

    </id>

<discriminator column="category" type="character" />

<!--用来表识父子类的标记字段-->

    <property name="price" column="price" type="integer" not-null="true"/>

    <property name="manufacturer" column="manufacturer" type="string" length="30" not-null="true"/>

<!--subclass是定义子类中特有部分的标签-->

<subclass name="Desktop" discriminator-value="d">

<!--discriminator-value属性是指定本类的标识符的-->

      <property name="LCD" column="islcd" type="yes_no" />

      <!--

指定子类的特有属性 type=”yes_no”是把布尔值转成单字节的存储数据库的类型,如果为true就会在字段中写入“Y”,反之为“N

-->

    </subclass>

    <subclass name="Notepad" discriminator-value="n">

      <property name="weight" column="weight" type="float" />

      <property name="thickness" column="thickness" type="float" />

    </subclass>

  </class>

</hibernate-mapping>

 

只为具体类建表的配置文件,还可以将这两个类的配置文件分开来写,这样就可单表的映射文件没有区别了。

<hibernate-mapping package="alan.hbn.inheritance.entity">

  <class name="Computer" abstract="true">

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

      <generator class="increment" />

    </id>

    <property name="price" column="price" type="integer" not-null="true"/>

<property name="manufacturer" column="manufacturer" type="string" length="30" not-null="true"/>

<!--union-subcalss标签是指定子类对应的表和子类特有的属性-->

    <union-subclass name="Desktop" table="desktop">

      <property name="LCD" column="islcd" type="yes_no" />

    </union-subclass>

    <union-subclass name="Notepad" table="notepad">

      <property name="weight" column="weight" type="float" />

      <property name="thickness" column="thickness" type="float" />

    </union-subclass>

  </class>

</hibernate-mapping>

 

每个类建一格表的配置文件

<hibernate-mapping package="alan.hbn.inheritance.entity">

  <class name="Computer" table="computer_tpc">

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

      <generator class="native" />

    </id>

    <property name="price" column="price" type="integer" not-null="true"/>

<property name="manufacturer" column="manufacturer" type="string" length="30" not-null="true"/>

<!--union-subcalss标签是指定子类对应的表和子类特有的属性-->

    <joined-subclass name="Desktop" table="desktop_tpc">

      <key column="computerid" />

       <!--指定使用父类的Id生成策略-->

      <property name="LCD" column="islcd" type="yes_no" />

</joined-subclass>

 

    <joined-subclass name="Notepad" table="notepad_tpc">

      <key column="computerid" />

      <property name="weight" column="weight" type="float" />

      <property name="thickness" column="thickness" type="float" />

    </joined-subclass>

  </class>

</hibernate-mapping>

 

hibernate组件映射

 

组件不会生成唯一标识,但是也需要对应实体类。

hibernate中可以把一个类的对象当作一个属性组件来使用,并且在使用时会自动创建,所以同一组件对象是不会被两次引用的。

 

:

<hibernate-mapping package="alan.hbn.rel.inherit" auto-import="false">

     <class name="Guest" table="guest">

         <id name="id" column="id" type="long" unsaved-value="0">

              <generator class="native"/>

         </id>

         <property name="userName" column="userName" type="string"/>

         <property name="password" column="pwd" type="string"/>

        <property name="birthday" column="birthday" type="date"/>

         <component name="homeAddress" class="Address">       

             <property name="street" column="street" type="string"/>                         <property name="zipcode"  column="zipcode"  type="string"/>                </component>   

     </class

</hibernate-mapping>

 

hibernateHQLhibernate Query Language

 

HQLhibernate的查询语言,他可以支持面向对象的查询。使用HQL语句,只能通过session.createQuery("...")

 

 

使用hibernate分页显示,使用Query对象的setFirstResult(int firstResult)firstResult从零开始)方法和setMaxResults(int maxResults) 方法。他会根据不同的底层数据库来显示指定数量的记录。

分享到:
评论

相关推荐

    java知识全集

    **5.4 Hibernate知识辅导(2--3)** - **查询语言**: HQL和Criteria API的使用。 - **分页查询**: 实现分页查询的方法。 - **排序和过滤**: 对查询结果进行排序和过滤。 **5.5 Hibernate知识辅导(3--1)** - **...

    博客系统(struts+hibernate+spring).zip

    这个标签表明这个项目可能是一个学生在毕业设计阶段完成的作品,旨在综合运用所学的Java Web开发知识,提升实际项目开发能力。通常,这样的项目会涵盖基本的CRUD(创建、读取、更新、删除)操作,用户注册与登录,...

    2022最全java面试题+心里辅导

    - JPA/Hibernate:理解ORM框架的工作原理,以及实体关系映射和查询语句的编写。 10. **心理辅导**: - 面试准备:了解如何有效地准备面试,包括对公司和职位的研究,以及自我介绍的技巧。 - 面试技巧:学会如何...

    基于springboot的线上辅导班系统源码数据库.doc

    知识点3:Java 语言 * Java 是一种面向对象的编程语言,能够在多种平台上运行。 * Java 是一种静态类型语言,具有强类型检查和垃圾回收机制。 * Java 的主要特点是平台独立、对象oriented 和大型商业应用友好。 ...

    基于java的饮食分享平台(源代码+数据库+部署文档+辅导视频).zip

    4. **源码**:"4-源码"是整个项目的代码库,可能包括了前端界面、后端服务、控制器、模型类、配置文件等。通过分析源码,可以深入理解项目的架构设计、业务逻辑和功能实现。例如,前端可能使用了Thymeleaf或JSP模板...

    程序员200G资料大放送(内含百度云链接) 违规请告知删除

    - **Hibernate4视频教程**:Hibernate是一个强大的对象-关系映射(ORM)框架,用于简化Java应用程序中的数据访问层。 - **Spring4视频教程**:Spring是一个轻量级的Java开发框架,主要用于简化企业级应用程序的开发...

    Java程序设计视频教程 48讲+2讲辅导

    根据给定的文件信息,我们可以提炼出一系列与Java程序设计相关的知识点,这48讲加上额外的2讲辅导课程,涵盖了Java编程的基础到高级技术,是深入理解和掌握Java语言的宝贵资源。以下是对这些知识点的详细说明: ###...

    基于java的人力资源管理系统设计与实现(源代码+数据库+部署文档+辅导视频).zip

    最后,"资料"(3-资料)可能是额外的学习资源,如Java编程指南、数据库管理教程、软件工程理论等,这些都能帮助学习者更全面地掌握相关知识。 综上所述,这个基于Java的人力资源管理系统项目不仅提供了实践经验,也...

    java简历辅导

    5. **框架知识**:如果你有使用MVC框架(如Spring MVC)、持久层框架(如Hibernate)或前端框架(如Angular、React)的经验,应明确指出并简述应用情况。 6. **数据库技能**:展示你的SQL知识,包括查询优化、事务...

    基于java的学籍管理系统设计与实现(源代码+数据库+部署文档+辅导视频).zip

    8. **辅导视频**:01-视频可能是一系列的教学视频,帮助学习者理解系统的实现过程,包括编程技巧、问题调试、功能测试等内容,有助于深化理论知识和实践能力。 9. **版本控制**:项目可能使用Git进行版本控制,确保...

    基于java的学生宿舍管理系统(源代码+数据库+部署文档+辅导视频).zip

    《基于Java的学生宿舍管理系统》 本项目是一款基于Java技术实现的学生宿舍管理系统,旨在提供一个...通过研究和模仿,开发者不仅可以掌握Java编程,还能了解到数据库设计、系统部署以及软件工程中的其他关键知识点。

    javaweb课程设计大作业,教学课后辅导交流系统.zip

    - 数据库:MySQL或Oracle存储用户信息、作业、成绩等数据,使用JDBC进行数据库操作,可能结合Hibernate或MyBatis简化ORM(对象关系映射)。 - 前端:HTML、CSS和JavaScript,可能使用Bootstrap或Vue.js等框架提升...

    基于java的记账系统设计与实现(源代码+数据库+部署文档+辅导视频).zip

    该资源是一个完整的基于Java开发的记账系统项目,包含了源代码、数据库设计、部署文档以及辅导视频,非常适合学习Java Web开发或对财务管理系统感兴趣的开发者。下面将分别介绍这些部分的关键知识点。 1. **Java...

    基于java的进销存管理系统设计与实现(源代码+数据库+部署文档+辅导视频).zip

    “3-资料”可能包含相关的学习资料,例如Java编程基础、Spring Boot教程、数据库管理知识等,帮助用户深入理解系统原理,提升开发技能。 六、辅导视频 “5-视频”中的辅导视频是系统的重要补充,通过实例演示,...

    基于java的记账系统(源代码+数据库+部署文档+辅导视频).zip

    这个项目的重点在于理解和应用Java编程语言来构建一个实用的业务系统,同时也涉及到数据库管理和系统部署的相关知识。 1. **Java编程基础**:Java是一种面向对象的编程语言,它的特性包括平台独立性、丰富的类库和...

    基于java的敬老院管理系统(项目报告+答辩PPT+源代码+数据库+截图+辅导视频).zip

    3. **数据库管理**:项目中可能使用了MySQL或Oracle等关系型数据库存储敬老院的数据,如老人信息、员工资料、费用记录等。SQL语言用于数据的增删改查,数据库设计时需考虑数据的一致性、完整性和安全性。 4. **JDBC...

Global site tag (gtag.js) - Google Analytics