Java - 框架之 Hibernate】的更多相关文章

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. 流程图: 核心接口 Hibernate的核心接口一共有6个,分别为:Session.SessionFa…
本文主要讲解: 1 级联 cascade 关键字 2 级联删除 3 inverse 关键字 4 懒加载 5 缓存的模拟 6 Hibernate 的一级缓存 7 Hibernate 的二级缓存 一.级联 cascade 关键字 public static void add(){ NiGuAn niguan=new NiGuAn(); niguan.setName("九峰寺"); NiGu nigu1=new NiGu(); nigu1.setNiguan(niguan); nigu1.s…
一.Hibernate - 核心接口 它是  JBoss Community team (社区团队) 开发的.Hibernate 是一个开源的,对象关系模型框架 (ORM),它对JDBC进行了轻量的封装, 使java程序员可以面对象的方式进行数据库操作.Hibernate 一共有5个核心接口 1.Session 用于连接数据库,相当于 jdbc 中的 Connection (它和 servlet 中 的Session  一点关系也没有),负责执行对象的CRUD操作 ,它是非线程安全的. 2.Se…
首先介绍一下Java三大框架的关系 以CRM项目即客户关系管理项目示例 hibernate框架的学习路线: 1.学习框架入门,自己搭建框架,完成增删改查的操作 2.学习一级缓存,事物管理和基本查询 3.学习一对多和多对多的操作等 4.学习基本查询和查询的优化 本人正在学习hibernate框架,今天是第一天,愿意把自己的学习过程分享给大家,希望大家提出宝贵意见,留言给我,共同进步需要什么软件.资源.例程jar包等的,可以留下邮箱,我晚上会给大家发过去的,谢谢…
简介 hibernate 是一个开源 ORM ( Object / Relationship Mipping ) 框架,它是对象关联关系映射的持久层框架,它对 JDBC 做了轻量级的封装,而我们 java 程序员可以使用面向对象的思想来操纵数据库. 使用 导包 1.下载 Hibernate5:官网下载,百度云下载. 2.解压,项目中导入解压后 '/lib/required' 下所有 jar 包,然后导入上面百度云链接中日志支持jar包. 代码 1.编写一个 JavaBean 作为映射模型,如:…
持久化类 概述 持久化:将内存中的对象持久化到数据库中的过程就是持久化.Hibernate 就是用来进行持久化的框架. 持久化类:一个 Java 对象与数据库的表建立了映射关系,那么这个类在 Hibernate 中称为是持久化类. 也可以看作:持久化类 = JavaBean + 映射文件 编写规则 1.对持久化类提供一个无参构造方法. Hibernate 底层使用反射生成实例. 2.属性需要私有,对私有属性提供 public 的 get 和 set 方法. Hibernate 底层获取和设置对象…
一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据. 二.what(Hibernate缓存原理是怎样的?)Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存. 1.Hibernate一级缓存又称为“Session的…
Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hibernate的配置既繁琐有麻烦,不知道童鞋们在学习Hibernate的时候有没有这种感觉,是不是还在怀念用JDBC连接数据库呢,但是繁琐背后隐藏着巨大的价值,下面我们将带你一探配置背后的奥秘. Hibernate配置文件的方式有两种:一种是通过XML格式文件配置,一种通过JAVA属性文件配置,属性…
Hibernate Mybatis 简介 区别 与联系 欢迎提出见解及转载. 1 简单简介     1.1    Hibernate 框架          Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射.是一个全自动的.完全面向对象的持久层框架.     1.2    Mybatis框架         Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管以后更名.是一个半自动化的持久层框架.…
本文主要介绍: 1 悲观锁和乐观锁 2 使用版本号控制并发访问 3 flush方法和批量更新的问题 4 DetachedCriteria 5 N + 1 次查询 6 使用sql进行查询 7 注解方式 一.悲观锁和乐观锁 问题:有两个人,同时打开了一个贴子,进行编辑,结果会怎么样? 后提交的,有可能会把先提交的冲掉. 比如一个贴子,发表者是张三 第一个人,改成李四,第二个改成王五,后提交,结果最后是王五,李四没了 ==悲观锁: 操作员得到数据以后,别人就不能修改,直到他修改完成,事务提交后才能进行…
本文主要介绍: 1 Criteria 接口 2 用 myeclipse 反向生成 3 hibernate  主键生成策略 4 多对一 5 一对多 6 使用List 集合的一对多 7 多对多 一.Criteria 接口 //例一 public static AdminInfo getLoginAdminCriteria(String adminName,String password){ try{ Session s=HibUtil.getSession(); Criteria c=s.creat…
一对多 例:一个班级可以有多个学生,而一个学生只能属于一个班级. 模型 package com.zze.bean; import java.util.HashSet; import java.util.Set; public class Class { private Integer id; private String name; private Set<Student> students = new HashSet<>(); public Integer getId() { r…
准备 模型及映射文件 package com.zze.bean; import java.util.HashSet; import java.util.Set; public class Class { public Class() { } public Class(Integer id, String name) { this.id = id; this.name = name; } private Integer id; private String name; private Set<St…
Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新数据库. 注意:session的某些方法(persist,load)不会立即把改动写入数据库,而是缓存到session的一级缓存中,除非显示调用flush,或者关闭session时才会更新到数据库 临时状态(Transient):没与session关联 持久化状态(Persistent):与sess…
CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写. 下面列举实例来讲解这几个操作: 实体类: package com.oumyye.model; public class Student { private long id; private String name; private Class c; public long getId() { return id; } public void…
以学生和老师为例的来讲解多对多映射. 实体类: Student package cn.itcast.g_hbm_manyToMany; import java.util.HashSet; import java.util.Set; public class Student { private Long id; private String name; private Set<Teacher> teachers = new HashSet<Teacher>(); public Lon…
对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,本质上就是将数据从一种形式转换到另外一种形式. 面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据.内存中的对象之间存在关联和继承关系,而在数据库中,关系数…
1.缓存介绍 Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存.这一级别的缓存由hibernate管理的,一般情况下无需进行干预:第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存.这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载. Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存. 一. 一级缓存和二级缓存的比较: 第一级缓存和第二级缓是存放数据的形式是以相互关联的持久化…
一.事务操作. 代码: @Test public void tr_Up(){ Session session=hibernateUtils.getSession(); Transaction transaction=session.beginTransaction(); Customer customer=new Customer(); try { Customer c=session.get(Customer.class,1L); c.setName("ooop"); //提交事务.…
一:介绍 hibernate是java中的dao层,即和持久层打交道.底层也是数据库驱动.连接等.他也有orm,类和数据库的映射. 二.部署 下载地址:https://sourceforge.net/projects/hibernate/?source=typ_redirect 1)包介绍: 2:)创建数据库 create table customer (id BIGINT NOT NULL AUTO_INCREMENT primary key,name varchar(),ipone_numb…
一:hibernate.cfg.xml 配置 <!-- 1.配置数据库连接的4个参数 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 连接数据库,本地数据库可以不用设置主机和端口 --> <property name="hibernate.connection.url">…
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.在配置连接池时需要注意的有三点: 一.Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷.如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式. 二.默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池.但这个连接池性能不佳,且存在诸多BUG(笔者就曾在Mysql环境下被八小…
Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用) 数据库中的语法如下: MySQL:create table t_user(id int auto_increment…
一对多关系可以分为单向和双向. 一对多关系单向 单向就是只能从一方找到另一方,通常是从主控类找到拥有外键的类(表).比如一个母亲可以有多个孩子,并且孩子有母亲的主键作为外键.母亲与孩子的关系就是一对多的关系.如果想对母亲信息的操作同时也反应在其孩子信息上那么可以在母亲类配置文件的集合属性上配置cascade="all",表示对关联实体进行级联更新配置. “主”端: 多的一端 <?xml version="1.0"?> <!DOCTYPE hiber…
一.绑定本地session 原理:之前connection实现事务一个道理,2种方法:1.变量下传.2.因为servlet是单线程,和本地当前线程绑定. 配置: 1)配置核心配置文件hibernate.cfg <!--绑定本地session--> <property name="hibernate.current_session_context_class">thread</property> 2)hibernate本身底层已经帮忙绑定当前线程(th…
流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是您不需要从头编写Java程序.有许多优秀的Java框架可以编写在Java虚拟机上运行的web和移动应用程序.微服务和REST api. Java框架允许您关注应用程序的业务逻辑,而不是编写数据库连接或处理异常等基本功能.此外,如果您有Java方面的经验,您可以快速入门.这些框架都使用相同的语法,使用…
一,java框架学习 Hibernate概述Hibernate是一个开放源代码的ORM(对象关系映射)框架,对jdbc进行了轻量级的封装,是的java开发人员可以使用面向对象编程思想操作数据库,简化操作数据库代码量.Hibernate映射的灵活性很出色,支持很多关系型数据库,从一对一到多对多的各种复杂关系.可扩展性强. ORM利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象,持久化到关系型数据库表中.通过操作java对象,就可以完成对数据库表的操作.可以把ORM理解成关系型…
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. 流程图: 核心接口 Hibernate的核心接口一共有6个,分别为:Session.SessionFa…
对 Struts 的理解:1. struts 是一个按 MVC 模式设计的 Web 层框架,其实它就是一个大大的 servlet,这个Servlet 名为 ActionServlet,或是 ActionServlet 的子类.我们可以在 web.xml 文件中将符合某种特征的所有请求交给这个 Servlet 处理,这个 Servlet 再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的 action 去处理.一个扩展知识点: struts…
Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hibernate能力不足,SQL不好优化也无法分离. 这个时候大家就想到集成mybatis,但是一个项目既用hibernate又用mybatis,显得很重事务也不好控制.大家常规的做法是采用springjdbc来实现原生SQL编写,但是同样存在问题,SQL无法分离也没有逻辑标签能力. 所以为了解决这个痛病,…