Hibernate
好好生活_
这个作者很懒,什么都没留下…
展开
-
【Hibernate】概述
【回顾】 在之前的一段时间,我们详细学习了SSH经典框架中的Struts和Spring,本篇博客,将开始Hibernate的学习,主要是对Hibernate框架的一个概述。【前言】 在Java发展的初级阶段,直接调用JDBC几乎是数据库访问的唯一手段。但随着设计思想和java技术本身的进步与发展,出现了许多JDBC的封装技术,这些技术为我们的数据库访问层实现提供了更原创 2016-08-10 22:47:25 · 828 阅读 · 10 评论 -
查询机制(一)
数据查询与检索是Hibernate中的一个亮点。相对于其它ORM实现而言,Hibernate提供了灵活多样的查询机制。 【概述】 一、标准化对象查询(Criteria Query) 定义:以对象的方式进行查询,将查询语句封装为对象操作。 优点:可读性好,符合Java程序员的编码习惯。 缺点:不够成熟,不支持投影或统计函数。 查询用原创 2016-11-13 18:17:37 · 1363 阅读 · 21 评论 -
【Hibernate】继承映射
【前言】 不知道大家是否还记得UML中的四种关系?自己回想了一下,还是没有忘记的,分别是继承、实现、依赖和关联。 怎么突然会想到这样一个问题?是因为在学习完Hibernate关联映射之后,紧接着又来了一个继承映射。关联和继承,都属于四种关系之一,所以,本篇博客就先提了个问题,下面就开始继承映射的学习。【概述】 继承是面向对象语言的三大重要特性之一,它实原创 2016-10-01 16:32:00 · 1363 阅读 · 20 评论 -
【Hibernate】多对多关联映射
【回顾】 上篇博客学习的是一对多单向与双向关联映射,到目前为止,就还剩下多对多关联映射没有提到。所以本篇博客内容为多对多关联映射。【多对多】 1. 实例:用户与角色的关系。多个用户可以拥有多个角色。 2. 实体类:User实体:package com.bjpowernode.hibernate;import java.util.Set;pub原创 2016-09-21 21:36:20 · 676 阅读 · 18 评论 -
【Hibernate】一对一主键关联映射
【回顾】 上篇博客内容是对Hibernate实体间多对一关联关系的学习和总结,本篇博客继续关联映射的学习,实体间关系为一对一。 【一对一】 1. 原理:让两个实体的主键一样,这样就不需要加入多余的字段了。 2. 示例:在用户Person从表中,存在一个id字段作为主键,而在另一个身份证信息IDCard主表中,同样存在一个id字段是主键,且这两个字段相原创 2016-09-08 21:21:31 · 1113 阅读 · 11 评论 -
【Hibernate】多对一关联映射
【回顾】 上篇博客学习的是单个实体类如何进行映射。但往往我们的关系模型中并不是单独的,而是有关联的。这篇博客就来看看在对象模型中如何体现关联映射。【前言】 我还记得在一次面试中,问到了一个这样的问题:实体之间的关系有哪几种?很简单地回答了:三种,分别是一对一、多对一和多对多。 这样的答案真的对吗?面试之后自己就查了查,先告诉大家结果并不如此。接下来就会总结原创 2016-09-04 11:11:01 · 525 阅读 · 11 评论 -
【Hibernate】一对多关联映射
【回顾】 在前面的学习,涉及到了多对一、一对一的关联映射。按照之前我的面试回答来说,这部分的内容就算结束了。但事实上,映射关系不仅仅只是三种,本篇博客要学习到的就是一对多这样一种关联映射。【一对多】 1. 原理:其原理和多对一关联映射一样。在多的一端加入一个外键,指向一的一端。 2. 示例:班级与学生之间的关系。一个班级对应着多个学生,它们的关系为一对原创 2016-09-14 19:42:56 · 587 阅读 · 10 评论 -
【Hibernate】一对一唯一外键关联映射
【回顾】 在上篇博客中学习的是通过主键进行实体间一对一关系的映射,但其不易扩展,一般采用的方法是本篇博客中学习的内容,即:唯一外键关联映射。【一对一唯一外键关联】 1. 原理配置:一对一唯一外键关联映射其实是多对一的特例。采用标签来映射。 2. 实体类代码:与单向主键关联一致,此处略。 3. 实体配置映射文件:Person.hbm.xml原创 2016-09-10 19:52:56 · 1159 阅读 · 9 评论 -
【Hibernate】基本映射
【回顾】 本篇博客开始,我们将学习的视线转移到“映射”。【映射定义(Mapping Declaration)】 对象和关系数据库之间的映射通常是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的, 并且可以手工修改。映射语言是以Java为中心,这意味着映射文档是按照持久化类的定义来创建的, 而非表的定义。 下面,同样从原创 2016-08-28 13:04:11 · 593 阅读 · 14 评论 -
【Hibernate】持久化对象的三种状态
【回顾】 上篇博客,进一步对Hibernate的基础语义做了简单的总结。主要包括Configuration、SessionFactory和session,并且熟悉了如何进行简单的CRUD(增删改查)操作。【前言】 本篇博客的内容是持久化对象中的三种状态,即:瞬时对象(Transient Objects)、持久化对象(Persist Objects)和离线对象(Deta原创 2016-08-25 23:42:00 · 1025 阅读 · 18 评论 -
【Hibernate】基础语义
【回顾】 在上篇博客中,我们通过简单地保存用户数据实例,学习了如何进行Hibernate配置,从而建立实体类与数据库表的映射关系,在不用写执行语句的情况下,实现对数据库表的操作。 本篇博客,将回到Hibernate的具体配置,了解一下配置中的一些基础语义。【基础】1. Configuration Configuration类负责管理Hibernat原创 2016-08-16 22:39:46 · 632 阅读 · 15 评论 -
【Hibernate】简单应用实例
【回顾】 在上篇博客中,我们对Hibernate有了一个宏观认识,它是一个比较经典的持久层框架,给我们的开发带来了很大的优势。本篇博客,就开始从实例出发,继续学习Hibernate。【环境搭建】 1. 建立java项目。它不像Struts需要建立Web Project,它不需要容器支持,普通的项目就可以。 2. 引入jar包。包括:Hibernate li原创 2016-08-11 23:05:34 · 2642 阅读 · 12 评论 -
查询机制(二)
【前言】 本篇博客继续对HQL查询的学习。点点滴滴的积累,才能让我们在项目中有更加熟练和更好地应用。至少下一次的遇见,不会觉得陌生。【HQL查询】一、条件查询 1. 拼串//可以拼串 List students = session.createQuery("select s.id, s.name from Student s wh原创 2016-11-19 10:32:52 · 658 阅读 · 25 评论