Hibernate(1)】的更多相关文章

在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置.核心API的底层实现和源码解析将在以后的博客中一一为大家讲解. 首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒): •创建Hibernate的配置文件 •创建持久化类 •创建对象-关系映射文件 •通过Hibernate API编写访问数据库的代码 关于配置…
映射的概念 在上次的博文Hibernate(三)Hibernate 配置文件我们已经讲解了一下 Hibernate中的两种配置文件,其中提到了两种配置文件的主要区别就是XML可以配置映射.这里提到的映射即 对象关系映射(Object Relational Mapping).ORM的实现目的就是将对象数据保存到数据库中,同时可以将数 据库数据读入对象中,这样开发人员就可以将对数据库数据的操作转化为对这些对象的操作. 基本映 射 了解了映射的意义和概念之后,我们来讲解一下映射的分类.从映射的概念来看…
在上次的博文Hibernate(二)Hibernate实例我们已经通过一个实例的演示对Hibernate 的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使用步骤. Hibernate 框架的使用步骤: 1.创建Hibernate的配置文件 2.创建持久化类,即其实例需要保存到数据库中 的类 3.创建对象-关系映射文件 4.通过Hibernate API编写访问数据库的代码 Hibernate配 置文件 本此博文,我们重点讲解一下Hibernate的配置文件.Hib…
上篇Hibernate(一)JDBC简介,我们主要对JDBC进行了简单介绍和使用说明,这次我们做一个Hibernate简单实例,通过这个实例对比Hibernate和JDBC,了解Hibernate的优势所在.在此之前,读者有必要了解一下Hibernate中的每个jar包的作用和每个jar文件包主要负责的工作,这里我们不做过多的解释. 1.导入jar文件 导入antlr-2.7.6.jar 导入commons-collections-3.1.jar 导入dom4j-1.6.1.jar 导入hibe…
准备工作 在上篇博客中学习ORM框架—hibernate(一):初识hibernate,通过简单的实例说明O和R的映射过程.本篇博客将要介绍hibernate中持久化对象的状态,并使用hibernate中的核心接口进行一些JDBC基本操作,来观察状态的转移. 准备工作很重要,需要了解一些专业词汇,所谓专业词汇,意思大家都懂,只是在专业领域里起个专业的名称罢了.所以见到陌生东西时,应该尽可能的消除这种不必要的恐惧. 先了解这个专业词汇 何谓“持久化” 持久(Persistence),即把数据(如内…
下载hibernate开发包: 在本章之前需要继承hibernate开发插件到eclipse,详细操作请参考我的博文:<Hibernate(一):安装hibernate插件到eclipse环境> 官网地址:http://hibernate.org/ 下载页面: 下载的版本是Hibernate5.2.9(hibernate-release-5.2.9.Final.zip) 解压下载的开发包. 新建HelloWorld工程: 在eclipse新建project工程,工程名:Hibernate_01…
版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate(四)--多对一单向关联映射>中,介绍了多对一的关联映射,今天就反过来说一下一对多的单向关联映射. 可能有人会对这2篇博客的题目有点混淆不清,跟日常说的关系有点不同.我们日常说的比如父子关系,夫妻关系都是说的双向关系,而现在讨论的则是单向关系,所以也就有了多对一和一对多的说法. 二者的关系其实很简单,只是…
案例名称:Hibernate完成增删改查 案例描述:抽取出工具类并完成删除.修改.查询功能. 具体过程: 1.使用上面的例子(Hibernate--(1)Hibernate入门http://blog.csdn.net/dawanganban/article/details/13748235) 2.新建HibernateUtils :用于封装创建Session的方法. package com.xsyu.tts.util; import org.hibernate.Session; import o…
1. 前言 本章节我们讨论Hibernate一对多查询的处理. 在上一章节中(Hibernate(一)——入门),我们探讨了Hibernate执行最基本的增删改查操作.现在我们将情况复杂化:加入我们在查询用户信息的时候需要同时查询其登录日志,这样就涉及到一对多查询.那么一对多查询要怎么实现么? 2. jar包准备 在本节中,除了上一章节中用到的jar包,我还需要用log4j.jar来将Hibernate的查询语句输出到控制台.log4j.properties的配置如下: log4j.rootLo…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to Many 映射关系 多对一单向外键关联(XML/Annotation) 一对多单向外键关联(XML/Annotation) 懒加载和积极加载 一对多双向外键关联(XML/Annotation) Many to Many 映射关系 多对多单向外键关联(XML/Annotation) 多对多双向外键关联(XML/Annotation) set的inverse元素详解 问题小结 关联关系的优缺点 多…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计——自动生成数据库脚本 一对一关系的小结 一些出错问题的总结 自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后在进…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: hibernate的主键生成策略 UUID 配置的补充:hbm2ddl.auto属性用法 注解还是配置文件 hibernate注解的基本用法 使用Session API CRUD操作对象,以及对象状态的转换 hibernate缓存的概念 get()/load()的区别到底是什么,源码分析 代理模式实现的懒加载 saveOrUpdate()/merge()的区别 Assigned(常用,一般情况使用很方便):…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: Hibernate的内部执行过程(CRUD) 对象的状态及其转换图和例子 使用JUnit测试 使用getCurrentSession代替openSession ThreadLoacl对象 享元模式 session.update(obj),为保证执行更新,推荐使用session.flush()刷新缓存; 1和2大概总结了Hibernate运行的技术原理,那么现在总结一下它自身的编写过程:如下: 其中本质上主要…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: 开源框架的学习思路(个人总结) Hibernate的运行原理总结 Hibernate实现原理中的两个主要技术 Java的反射技术的原理 反射的应用和例子 反射的缺点 编写一个模拟Hibernate的demo(V1.0版本) 后续的模拟ORM框架的设计思路 开源框架的学习思路(个人经验,欢迎提出意见) 框架是为了解决开发中遇到的一个个问题而诞生的,程序员是为了解决问题而学习框架的,这才是正确的学习之道!一个框…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 数据库的概念.逻辑.数据模型概念 应用程序的分层体系结构发展 MVC设计模式与四层结构的对应关系 持久层的设计目标 数据映射器架构模式 JDBC的缺点 Hibernate简介 迅速使用Hibernate开发的例子 Hibernate的核心类和接口,以及他们的关系 POJO和JavaBean的比较 之前的一篇总结文章: 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型…
本文链接:http://www.orlion.ml/28/ 一.保存 1. 假设一个group有多个user,一个user只属于一个group,当保存user对象到数据库中时可以 User u = new User(); u.setName("u1"); Group g = new Group(); g.setName("g1"); u.setGroup(g); Session s = sessionFactory.getCurrentSession(); s.be…
关系映射是指对象之间的关系,并不是指数据库的关系,关系映射是解决当对象处于以下关系之一时,数据库表该如何映射的问题 (一)一对一单向外键关联 1.注解方式配置 创建一个Husband类和Wife类 Husband类:(getWife方法上加注解OneToOne) package cn.orlion.hibernate.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import ja…
本文链接:http://www.orlion.ml/37/ 一.Configuration 1.AnnotationConfiguration 2.进行配置信息的管理 3.configure()方法通过传入一个配置文件来使用例:new Configutayion.configure("myhibernateconfig.xml")...如果不传入配置文件则默认为hibernate.cfg.xml 二.SessionFactory 1.维护着数据库的连接池,当它产生一个session的时…
一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping p…
一.基本配置 1.<property name="hbm2ddl.auto">update</property> 改项配置有4个选项: validate:当创建好表,当我们操纵数据之前会检查数据库中表与配置文件对应上: update:如果我们添加了新的属性,而数据库中的表中没有该列,hibernate会帮我添加该字段(或者是我们在实体类中增加一个属性(比如在Student类中添加一个属性sex)hibernate会帮我们添加): create:启动时如果对应表存…
一.创建一个java project名为HibernateDemo1 然后导入hibernate包,eclipse中具体操作: 点击菜单栏windows->preferences->java->bulid path->User Libraries 然后new->输入hibernate(不勾选下边的选择框)->add external jars这时候就要选择包了,将下载的hibernate4.3.11目录lib下required中的jar文件全部加载.然后在项目上右键选择…
一.映射Set(集):未排序,无重复. 实例代码: <set name="images" table="IMAGES" lazy="true" > <key column="CUSTOMER_ID" /> <element column="FILENAME" type="string" not-null="true"/> </…
一.Hibernate缓存简介: Session接口是Hibernate向应用程序提供的操纵数据接口的最主要接口,它提供了基本的保存.更新.删除和加载Java对象的方法. Session具有一个缓存,位于缓存中的对象称为持久化对象,Session能够在某些时间点来同步更新数据库,这一过程即为清理缓存. Hibernate把对象分为4种状态:持久化状态.临时状态.游离状态和删除状态. 二.Session的缓存: Session的缓存由一系列Java集合构成的. 1.Session缓存的作用: A.…
Hibernate使用对象标识符(OID)来建立内存中对象和数据库表中记录的对应关系,对象的OID和数据库的主键对应.为了保证OID的唯一性和不可变性,应该让Hibernate来为OID赋值.Hibernate通过标识符生成器来为OID赋值. 一.指定标识符生成器: 使用<id>元素的子元素<generator class="increment"/>来指定.Hibernate提供的内置标识符生成器: A.increment:适用于代理主键.由Hibernate自…
检索即对象的获取:获取的时机和和方式:减少没必要的内存占用,尽量少的sql语句减少多余数据库的访问 一:类级别的检索:load() 和属性<class lazy=true> .无论 <class> 元素的 lazy 属性是 true 还是 false, Session 的 get() 方法及 Query 的 list() 方法在类级别总是使用立即检索策略:仅对load()有效 2.默认是延迟加载的即lazy=true;当使用对象属性的时候才真正获取对象(前提是load()): 3.…
Hibernate(开放源代码的对象关系映射框架) Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以…
上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我 们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; private Set users; public int getId() { return id; } public void setId(int id…
上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的 相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映 射之前,首先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id;…
上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在一的一端存在多的一端的一个集合对象,在多的一端存在一的一端的一个对象,这样就可以保证在加 载一的一端或多的一端将被指向端的集合或对象加载上来,即保证双向关联. 一对多双向关联映射和 一对多单向关联映射的异同 一对多双向关联映射相应的类结构图和代码.具体如下: public class Classes…
上次的博文Hibernate从入门到精通(七)多对一单向关联映射我们主要讲解了一下多对一单向关联映射, 这次我们继续讲解一下一对多单向映射. 一对多单向关联映射 在讲解一对多单向关联之前,按 照我们的惯例首先看一下其相应的类结构图和代码.具体如下: public class Classes { private int id; private String name; private Set students; public int getId() { return id; } public vo…