hibernate 基础】的更多相关文章

此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:数据库的保存.更新.删除:sql.hql查询:分页查询:调用存储过程 创建hibernate基础dao类: BaseDao.java package com.ims.persistence.base; import java.io.Serializable; import java.util.List; import java.util.Map; import org.hibernate.criterion.Det…
hibernate基础1.hibernate介绍与动手入门体验  问题:模型不匹配(java对象模型与数据库关系模型不匹配)  解决: 1.使用JDBC手工转换        2.使用ORM(Object Relation Mapping对象关系映射)框架,有Hibernate,TopLink,OJB  下载地址http://www.hibernate.org  3.2.5版本  安装配置:    配置文件:hibernate.cfg.xml,hibernate.properties 这两个文件…
Hibernate.基础篇<二>. getOpenSession() 和 getCurrentSession() - 1 说明: 在Hibernate应用中,Session接口的使用最为广泛,也成为持久化管理器,提供与持久化相关的操作,如:添加.更新.删除.加载即查询对象等.可以简单的理解为Session是JDBC中的Connection的封装.那也就是说,如果你想操作数据库(CRUD操作),那么一定会使用到Session,而Session的创建有两种:1.  getOpenSession()…
Hibernate.基础篇<一>.Hibernate工具类. 话述: Hibernate.基础篇第一篇,前面是代码.后面再加理论&实践. Hibernate使用的版本是:5.x,在<Hibernate.基础篇<一>.Hibernate工具类.>已有具体描述,并实现了创建SessionFactory的方式,本篇对Hibernate工具类进行了小小的改良,如下: 项目结构: RunTest.java package com.charles.hibernate.tes…
Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactory创建时,自动将数据库schema的DDL导出到数据库. 使用 create-drop时,在显式关闭SessionFactory时,将drop掉数据库schema. 取值 update | create | create-drop 其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创…
Hibernate入门1. Hibernate基础知识入门 20131127 前言: 之前学习过Spring框架的知识,但是不要以为自己就可以说掌握了Spring框架了.这样一个庞大的Spring架构,不是我们可以速成的.再有最近Spring有转型,Spring官方网站已经更改了很多,因为Spring已经调整了他的整个业务体系,涉足服务器开发.Android开发.大数据分析等等各个部分,而不仅仅是一个包容性的框架了,Spring未来的发展方向更加开阔了. 同时Spring已经不再提供下载,而是转…
Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一级缓存是将获取的结果放到了session中,再次查询直接从缓存中获取(提高查询效率) 3)缓存进阶之快照:将获取的一份结果放到session中,一份放到快照中,当修改时,对比快照与缓存, 如果数据没有发生变化,直接结束修改(避免不必要的修改) hibernate的事务 在业务开始之前打开事务,在业务…
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转换 package learnhow; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import util.HibernateUtil; import model.exa…
一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Order对象的引用.      Order.java public class Order{ private Integer uid; private String name; private Customer cus; //省略get.set方法 } Customer.java public cla…
一.映射对象标识符      Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录.Hibernate使用对象标识符(OID)来建立内存中的对象和数据库表中的记录的对应关系,对象的OID和数据库表的主键对应,为了保证OID的唯一性和不可变性,应该让Hibernate,而不是应用程序来为OID赋值.     Hibernate推荐在数据表中使用代理主键,即不具备业务含义的字段.代理主键通常为整型,因为整型比字符串要节省更多数据库空间.     在…
Hibernate:是开源的ORM框架技术,对jdbc进行了非常轻量级的对象封装,处于业务逻辑层和数据库层之间,称作持久化层. 持久化层的作用:把程序生成的对象持久化到数据库,也就是保存到数据库.  hibernate执行流程 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件(下述代码简略解释) ***** public Configuration configure() throws HibernateException {…
前面已经学习了Struts2的基础知识,可以自己搭建一个简单的Struts2项目!现在开始Hibernate!从基础开始! 1.web内容回顾 JavaEE三层结构(后面要看下,三层架构是怎么区分的???) web层:struts2框架 service层:spring框架 dao层:hibernate框架,对数据库进行CRUD操作 MVC思想 2.Hibernate概述 什么是Hibernate框架 应用在javaee三层结构中的dao层框架,开源轻量级(不依赖其他东西).    在dao层里面…
刚刚接触Hibernate尝试写一个事例项目,但是搞了一天硬是苦逼的没弄通,一直的报无法创建表,现在就把这些经验给大家分享一下: 1.书写问题: <property name="hbm2ddl.auto">create</property> 中间可以是create或update,当无法创建表时,大家一定要注意检查一下自己写的是否正确 2.Mapping的映射文件有重名的,如: <mapping resource="com/runsky/domai…
本章主要是描述几种经典映射关系,顺带比较Hibernate4.x和Hibernate5.x之间的区别. 一.建立测试工程目录 有关实体类之间的相互映射关系,Hibernate官方文档其实描述的非常详细,这里只提供几种常见映射.(推荐4.3.11版本的 hibernate-release-4.3.11.Final\documentation\manual) 二.编写映射关系 (1)one2one单表内嵌映射: package model.family; import javax.persisten…
本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hibernate 5.x以后版本的官方文档,只能先记录下来. 首先声明一点,我在写这篇文章的时候结合了5.0.6和4.3.11两个版本,结果发现新版有不少变化,一些在4.3.11中正常的功能在新版本之中有很大不同. 一.通过Maven引入依赖 <project xmlns="http://mav…
对于JAVA开发高级,hibernate是java三大框架之一,足以见得它的重要性,那么对于hibernate的使用大家有了解多少呢?从今天开始我将带领大家一道共同探讨一下hibernate的知识,hibernate对于我们开发移动应用关联数据库十分方便,hibernate对于数据库的操作十分便利,省去了很多之前开发时的不便. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibern…
hibernate 基础理论知识网上很多,可以百度和google.这里不做多的介绍,以一个User表来开展例子 建一个web-project 我这里用了junit单元测试环境来进行增删查改的测试,别的不多说,导包就行 本次用到的所有jar包下载地址: 链接:http://pan.baidu.com/s/1skHrg0t 密码:dbe2 1.hibernate配置文件(hibernate.cfg.xml):主要是数据库连接核心的配置项 <?xml version='1.0' encoding='u…
保存记录 session.save(customer); 根据主键进行查询 Customer customer = (Customer)session.get(Customer.class ,1); Customer customer = (Customer)session.load(Customer.class,1); ***** get 和load的区别:(面试题) 1.发送SQL的时机: load这个方法采用了一个技术.lazy延迟加载(懒加载).真正使用这个对象的数据的时候.(对象的数据…
在说Hibernate映射前,我们先来了解下对象关系映射 ORM.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现.这样开发人员就可以把对数据库的操作转化为对这些对象的操作.我们来看一张图 通过该图,我们可以看出业务实体,在数据库中表现为关系数据,而在内存中表现为对象.应用程序处理对象很容易,但是很难处理关系数据.ORM做到了关系数据和对象数据之间的映射,可以通过映射关系自动产生SQL语句,在业务逻辑层和数据层之间充当桥梁. Hibernate映射 Hibernate文件…
1.入门 hibernate是跟数据库打交道的,一般跟数据库打交道的都不简单 原始.底层直接的一些操作.编码量比较大.费时.用框架高效 把原来一点一点实现的东西,现在给个半成品,不用在这上边发时间,把重点放在业务上,而不是底层的 DAO层   Hibernate  MyBatis  都是针对DAO 层的简化框架   增删改查操作数据库,这两个框架各有优缺点,市场都挺大的,你不都了解,也不太合适 MVC调用部分     Struts2.0   SpringMVC Spring 核心特点:以对象的方…
相对于上一篇中的代码编写HibernateUtil类以提高程序的执行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public voi…
接下来这几章节学习的是Hibernate,Hibernate的主要作用就是用来和数据库进行连接,简化了JDBC的操作. 首先,我们创建项目,然后把Hibernate的jar包和sqlserver的驱动导入进去. 接下来,我们须要写一个实体类:User package cn.itcast.hibernate.domain; import java.util.Date; public class User { private int id; //private String name; privat…
把数据库的配置信息写在一个文件中 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/world jdbc.username=root jdbc.password=1234 jdbc.properties 实体类,加上注解 package com.ouc.wkp.model; import javax.persistence.Column; import javax.persiste…
这里举样例用的是:部门与员工的关系. 一个部门能够相应多个员工,这就是非常明显的多对一关联关系. 我们须要建立两个实体类:员工(Employee).部门(Department) 员工类:Employee.java(在这里边我们添加了一个Department类型的属性,用来做关联) package cn.itcast.hibernate.domain; public class Employee { private int id; private String name; private Depa…
一.概述      Hibernate有五种检索方式. 1.导航对象图检索方式      根据已经加载的对象,导航到其他对象. Order order = (Order)session.get(Order.class,1); Customer customer = order.getCustomer();   2.OID检索方式      根据对象的OID来检索对象. session.get(Customer.class,1); session.load(Customer.class,1); g…
一.概述      Session的缓存是一块内存空间,在这个内存空间存放了相互关联的Java对象,这个位于Session缓存内的对象也被称为持久化对象,Session负责根据持久化对象的状态来同步更新数据库.      Session的缓存是内置的,不能被拆卸,也被称为Hibernate的第一级缓存.此外,SessionFactory有一个内置缓存和一个外置缓存,内置缓存不能被拆卸,而外置缓存是可插拔的缓存插件,也被称为Hibernate的第二级缓存,第二级的缓存本身实现很复杂,必须实现并发访…
一.概述      Session接口是Hibernate向应用程序提供的操纵数据库最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法.      Session具有一个缓存,位于缓存中的对象称为持久化对象,它和数据库相关记录对应.      Session能够在某些时间点按照缓存中对象的变化来执行相关SQL语句,来同步更新数据库,这一过程称为清理缓存(flush).   二.Session的缓存 1.理解     如果希望一个Java对象A一直处于生命周期中,就必须保证至少有…
一.Hibernate的核心接口      所有的Hibernate应用中都会访问Hibernate的5个核心接口.      (1)Configuration接口: 配置Hibernate,启动Hibernate,创建SessionFactory对象.      (2)SessionFactory接口: 初始化Hibernate,创建Session.      (3)Session接口: 负责保存.更新.删除.加载和查询对象.      (4)Transaction接口: 管理事务.     …
一.对象的持久化 狭义的理解: 持久化仅仅指把对象永久的保存到数据库中. 广义的理解: 持久化包括和数据库相关的各种操作.         保存: 把对象永久保存到数据库中.         更新: 更新数据库中对象的状态.         删除: 从数据库中删除一个对象.         查询: 根据特定的查询条件,把符合查询条件的一个或者多个对象加载到内存中.   二.ORM      ORM(Object-Relation-Mapping),对象关系映射.      ORM的思想: 将关系…
Hibernate是JDBC的轻量级的对象封装(encapsulation),它是一个独立的对象持久persistence层框架. hibernate要做的事,就是让对象投影到关系数据库中,然后实施化.它把数据层和业务层实现的解耦,这样能很好的转化想要的数据库. 一.hibernate的核心接口: session:负责被持久化对象CRUD操作: sessionFactory:负责初始化hibernate,创建session对象: configuration:负责配置启动hibernate,创建s…