hibernate系列之一】的更多相关文章

前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后面我用的是JetBrains的IDEA了,个人比较喜欢这些快捷键.偷懒程序员必备啊,哈哈. 目录: Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来) Hibernate 系列 02 - Hibernate介绍及其环境搭建 Hibernate 系列 03 - 使用…
引导目录: Hibernate 系列教程 目录 本篇导航: 为什么学习框架技术 框架的概念 主流框架的介绍 1.为什么学习框架技术 如何制作一份看上去具有专业水准的PPT文档呢?一个简单的方法就是使用Microsoft PowerPoint的模板功能,如图: 使用模板新建出来的文档已经有了一个PPT的“架子”,我们字需要把必要的信息像“填空题”一样填写进去就可以了,如图: 思考一下,使用PPT模板制作PPT有那些好处? 使用PPT模板制作文档的有点如下: (1)不用考虑布局.排版等问题,提高了效…
引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归路.呵呵. 本篇目录: 数据持久化概念 Hiberante框架及ORM2.1. Hibernate框架2.2. 什么是ORM2.3. Hibernate框架的优缺点及其适用场合 2.4.1 Hibernate框架的优点 2.4.2 Hibernate框架的缺点2.4. Hibernate环境搭建2.…
引导目录: Hibernate 系列教程 目录 康姆昂,北鼻,来此狗.动次打次,Hibernate继续走起. 目录: 使用Hibernate实现按主键查询 使用Hibernate实现数据库的增.删.改操作2.1 使用Hibernate实现增加操作2.2 使用Hibernate实现修改.删除操作 2.2.1 使用Hibernate实现修改操作 2.2.2 使用Hibernate实现删除操作 技能训练 为工程准备了Hibernate环境后,就可以通过Hibernate API操纵数据库.Hibern…
引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hibernate里面为咱们提供了很多的类,但是常用的类只有很少的那么几个. 下面,一起着重地看一下其中配置相关的类 - Configuration & SessionFactory. 目录: Configuration 类 (负责管理Hibernate的配置信息) SessionFactory 类 (负…
引导目录: Hibernate 系列教程 目录 前言: Session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库的存取都与Session息息相关. 就如同在编写JDBC时需要关心Connection的管理,以有效的方法创建.利用与回收Connection,以减少资源的消耗,增加系统的执行效能一样,有效的Session的管理也是Hibernate应用时需要关注的焦点. 本篇目录: 使用threadLocal变量 Session的缓存 1. 使用threadLocal变量 S…
引导目录: Hibernate 系列教程 目录 Java对象通过new命令进行创建,Java虚拟机(Java Virtual Machine,JVM)会为新的Java对象在内存中开辟一个新空间以存放次对象. 只要此对象被引用变量引用,它就一直在内存中存在. 当然,对象不被任何引用对象引用时,JVM就会通过垃圾回收机制消除次对象以释放内存. 例如以下代码: Object o = new Object(); // 一个Object对象实例被变量o引用,JVM将为它开辟空间 引用的效果如图所示: 然后…
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hibernate中的一个关键概念,正确地理解生命周期,可以更好地了解Hibernate的实现原理,掌握Hibernate的正确用法. Hibernate框架通过Session来管理Java对象的状态,在持久化生命周期中,Java对象存在着如下三种状态: 瞬时状态(Transient) 通过new创建对…
目录导读: Hibernate 系列 学习笔记 目录 本篇目录: 为了区别不同的对象,有两种识别方法: 1. 内存地址识别(“==”号识别) 2. equals()和hashCode()识别 1. 以内存地址识别 如果两个对象的内存地址相同,毫无疑问,它们是相同的. 如果要比较的是对象携带的信息,使用内存地址识别就不可用,因为地址不同的对象,它们所代表的的信息可能是一样的. 例如有两个字符串,代码如下: public class CNBlogsTest { public static void…
这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架. 我们从上一句话可以看出Hibernate的核心:面向对象.关系映射以及数据持久化.前面两个概念很容易理解,而对于"数据持久化",就是将数据或者某物体,永久的保存起来.现实生活中的例子有很多,例如:鲜肉冷藏,水果做成罐头,而对于编程而言就是将数据保存在文件或磁盘…
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代码的 ORM 框架,是主流的Java持久层框架之一,它对 JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库.(2).Hibernate在三层架构中的位置上篇文章所讲的Struts2框架取代的是三层框架中的web层,而Hibernate框架取代的则是dao层,…
1.和它的增改查兄弟不同,多了个until包定义了HibernateUntil类,让我们来一起看看吧 public class HibernateUntil { private static Configuration cfg=new Configuration().configure(); private static SessionFactory factory=cfg.buildSessionFactory(); //1.方法返回session 静态成员变量不能直接使用非静态成员 //Se…
数据库中表之间的关系: 一对一.一对多.多对多 一对多的建表原则:在多的一方创建外键指向一的一方的主键: 多对多的建表原则:创建一个中间表,中间表中至少有两个字段作为外键分别指向多对多双方的主键: 一对一建表原则:唯一外键对应:假设一对一中的任意一方为多,在多的一方创建外键指向一的一方的主键,将外键设置为唯一 主键对应:一方的主键作为另一方的主键: 在hibernate中采用java对象关系描述数据表之间的关系: 一对多的映射关系的实现案例: 客户实体类:在hibernate系列一中已经实现点击…
自己定义映射文件 这里的映射文件指的是相应到数据库表的xml 的定义文件. 相应的每一个数据库表栏位, 能够定义的属性有: 属性名 类型 Description length number 栏位的长度 precision number precision表示数字中的有效位.假设没有指定precision的话.Oracle将使用38作为精度 scale number scale表示数字小数点右边的位数.scale默认设置为0. 假设把scale设成负数,Oracle将把该数字取舍到小数点左边的指定…
这篇博文是Hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架. 我们从上一句话可以看出Hibernate的核心:面向对象.关系映射以及数据持久化.前面两个概念很容易理解,而对于“数据持久化”,就是将数据或者某物体,永久的保存起来.现实生活中的例子有很多,例如:鲜肉冷藏,水果做成罐头,而对于编程而言就是将数据保存在文件或磁盘以及数据库…
概述 Hibernate简介 1.2.安装hibernate tools插件 1.3.HelloWorld示例 1.3.1.加入jar包 1.3.2.开发步骤 hibernate generator class="native" 惹的祸:http://blog.csdn.net/yufaw/article/details/7680403 1.3.3.helloworld详解…
基本概述: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端使用,也可以在Servlet/jsp的web应用中使用,最具有革命意义的是,Hibernate可以在应用EJB的将ee框架中取代CMP,完成数据持久化的重任. hibernate是轻量级的ORM框架,ORM全称object relation mapping…
Hibernate思维导图   Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述标识符,需要在配置文件中指定对象标识符的生成方式 assinged是自然主键的方式,这种策略需要用户指定ID才可以. 其他的方式比如sequence通过序列生成主键,identity,increment等是自增长,这种方式生成的主键一般是hibernate生成的,所以我们在编写实体对象的时候,id的…
Hibernate框架介绍: Hibernate  ORM  主要用于持久化对象(最常用的框架) Hibernate  Search 用于对对象进行搜索,底层基于Apache Lucene做的 Hibernate Validator  用于进行校验 Hibernate OGM 用于Nosql的持久化 Hibernate Tools 是一款基于Eclipse的插件,用于快捷生成xxx.hbm.xml以及hibernate配置文件等 Hibernate产生的背景 在最古老的编程模式还没出现的时候,程…
在二级缓存配置成功的基础上进行查询缓存配置 Product public class Product { private Long id; private String name; Product.hbm.xml <class name="Product"> <id name="id"> <generator class="native" /> </id> <property name=&qu…
pom.xml <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>${hibernate.version}</version> </dependency> Product /** * @author JE哥 * @email 1272434821@qq.com * @…
Product public class Product { private Long id; private String name; Product.hbm.xml <class name="Product"> <id name="id"> <generator class="native" /> </id> <property name="name" /> &l…
Employee public class Employee { private Long id; private String name; HourlyEmployee public class HourlyEmployee extends Employee { private Double rate; SalariedEmployee public class SalariedEmployee extends Employee { private Double salary; Employe…
Employee public class Employee { private Long id; private String name; HourlyEmployee public class HourlyEmployee extends Employee { private Double rate; SalariedEmployee public class SalariedEmployee extends Employee { private Double salary; Employe…
Employee public class Employee { private Long id; private String name; HourlyEmployee public class HourlyEmployee extends Employee { private Double rate; SalariedEmployee public class SalariedEmployee extends Employee { private Double salary; Employe…
Single Table策略 通过 discriminator鉴别器来区分是父类还是子类 Employee public class Employee { private Long id; private String name; HourlyEmployee public class HourlyEmployee extends Employee { private Double rate; SalariedEmployee public class SalariedEmployee exte…
组成关系 在一个员工模型里面需要存入 员工公司所在地址的城市,街道 员工籍贯所在的城市,街道, 此时可以抽取城市,街道变成一个模型即是组成关系 Employee public class Employee { private Long id; private String name; // 公司的地址 private Address comAddress; // 籍贯所在地 private Address homeAddress; Employee.hbm.xml <class name="…
自关联:本质还是原来双向一对多,原来要配置两个类,现在全部都配置在一个类里面 Employee public class Employee { private Long id; private String name; // 多对一: 多个员工对一上级 private Employee manager; // 一对多:一个领导有多个下级 private Set<Employee> children = new HashSet<Employee>(); Employee.hbm.xm…
复合主键 复合主键的意思就是2个字段同时为主键 不使用无业务含义的自增id作为主键 Airline package com.jege.hibernate.compositeid; import java.io.Serializable; //使用复合主键的持久化类需要实现serializable接口和覆盖equals().hashCode()方法. public class Airline implements Serializable{ private String startCity; pr…
双向一对一 一对一主要用在 一个一方需要的信息比较少,比如注册的登录信息 另一个一方存储的信息比较多,比如注册之后用户填写的详细信息 实现方式常用的主要有2种: java模型都是一样,其中一个映射文件有所不同 hibernate.cfg.xml <mapping resource="com/jege/hibernate/two/way/onetoone/User.hbm.xml" /> <mapping resource="com/jege/hibernat…