Configuration configuration=new Configuration(); configuration.configure(); 在Hibernate底层实现configure()方法时会默认在classpath下面(即从src目录下开始查找)寻找hibernate.cfg.xml,并进行配置,当然也可以自己指定hibernate.cfg.xml文件位置: configuration.configure("/com/db/hibernate.cfg.xml");…
任务:读取主配置信息 1.  Configuration config = new Configuration();      使用hibernate,但并没有读取 2.  config.configure();   开始读取配置文件在src目录, File file = new File("c:\\Hibernate.xml"); Configuration config = new Configuration().config(file); 也可以将配置文件放置其他目录用相应的AP…
org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,Configuration对象提供了一个buildSessionFactory()方法,该方法可以产生一个不可变的SessionFactory对象. 另外,先实例化Configuration实例,然后在添加Hiberante持久化类.Configuration对象可调用addAnnotatedClass()方法逐个地添加持久化类,也可调用addPackage()方法添加指定包下的所有持久化类…
Configuration对象 Hibernate的持久化操作离不开SessionFactory对象,使用该对象的openSession()方法可以打开Session对象.而SessionFactory对象就是由Configuration对象创建的. Configuration实例代表了应用程序到SQL数据库的配置信息.Configuration对象提供了一个buildSessionFactory()方法,使用该方法可以产生一个不可变的SessionFactory对象.也可以先实例化Config…
Configuration: Configuration是hibernate的入口,负责管理Hibernate的配置信息,这些配置信息都是从配置文件hibernate.cfg.xml或者Hibernate.properties读取的,当然也可以自定义文件名称,只要在实例化Configuration的时候指定具体的路径就可以了: SessionFactiory: Configuration的实例会根据当前的配置信息,构造SessionFactory实例.SessionFactory是线程安全的,一…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
1.Configuration对象: Configuration conf=new Configuration(); conf.configure(); 1.1 到 src下面找到名称hibernate.cfg.xml 配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件) 1.2 2.SessionFactory对象:(重点) 1 使用 configuration对象创建sessionFactory对象 1.1 创建sessionfactory过程中做事情 根据核心配置文件中,有数据库…
1. 持久化实体 Serializable save(Object obj) : 将obj对象变为持久化状态,该对象的属性将被保存到数据库. void persist(Object obj) : 将obj对象转化为持久化状态,该对象的属性将被保存到数据库. Serializable save(Object obj,Object pk)  : 将obj对象保存到数据库,保存到数据库时,指定主键值. void persist(Object obj,Object pk) : 将obj对象转化为持久化状…
Hibernate的get和load方法查询出的实体都是持久化对象,拿到该对象后,如果你调用了该对象的set方法,如果再同一个事务里面,那么在事务递交的时候,Hibernate会把你设置的值自动更新到数据库中. 解决方案如下: 1,通过AOP对事务的service层,Dao层的管理 2,在获取实体对象后,调用下getHibernateTemplate().evict(entity)方法,该方法的作用是把持久化对象变成托管状态.变成托管状态后,Hibernate就不会再去自动更新该实体 3 Hib…
一.通用方法的抽取实现 由于hibernate中对增删改查的一切操作都是面向对象的,所以将增删改查抽取成通用方法,以满足不同的表的增删改查操作,简化jdbc代码. 具体例子如下: package cn.itcast.hibernate; import java.io.Serializable; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; i…
数据库表如下: book表 id 该表的主键.number类型. photo 代表图书的图片,blob类型. description 图书的描述,clob类型. 使用 hibernate3 往 book 表插入Clob,Blob数据 省略hibernate配置文件,实体映射文件和实体类代码,直接帖实现代码: package accp.hibernate; import java.io.FileInputStream; import java.io.IOException; import java…
关于在使用hibernate在提交事务时常遇到的异常: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session) net.sf.hibernate.AssertionFailure: possible nonthreadsafe access to session 其实这个异常一般都是和我们在操作session f…
上一节我们讲到了Hibernate的测试,并且给出了测试代码,刚开始看见这个测试代码的同学估计是一头雾水把,所以这一节我们来讲一下测试代码. 本节主要内容: Configuration SessionFactory Session 首先我们再来看一下上一节的测试代码: //加载配置文件 Configuration config = new Configuration().configure(); //根据配置文件创建会话工厂 SessionFactory factory = config.bui…
hibernate的核心类和接口 Configuration类 作用:(1)读取hibernate.cfg.xml文件 (2)管理对象关系映射文件<mapping resource=""> (3)加载hibernate的驱动,例如:url,用户名 (4)管理hibernate配置信息 hibernate.cfg.xml 对象关系映射文件 SessionFactory(会话工厂)接口 缓存sql语句和某些数据(称为Session级缓存) 在应用程序初始化的时候创建,是一个重量…
一.基本介绍1.它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm(对象关系映射)框架,hibernate可以自动生成SQL语句,自动执行: Hibernate可以应用在任何使用JDBC的场合. 2.持久化层:处理关系型数据库(数据存储层)和模型对象(object,业务逻辑模型)的映射关系的代码方法(ORM)3.Hibernate是一个基于JDBC的主流持久化框架,对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码,是一个优秀的…
知识点2: session概述 Session 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口,它提供了基本的保存,更新, 删除和加载Java对象的方法. 知识点3:理解session的缓存 在 Session 接口的实现中包含一系列的 Java 集合, 这些Java集合构成了 Session缓存.只要Session 实例没有结束生命周期,存放在它缓存中的对象也不会结束生命周期 当session的save()方法持久化一个对象时,该对象被载入缓存,以后即使程序中不再引用该…
ORM进阶之 ORM简单介绍 ORM进阶之Hibernate 简单介绍及框架搭 ORM进阶之Hibernate 的三大对象 我们在上一篇博客中讲到了怎样搭建一个Hibernate框架, 提到Hibernate我们就不得不说他的三大对象,Configuration,SessionFactory , Session .下边我们就分别来解释一下这三大对象! Configuration对象 Configuration类用来管理我们的配置文件的信息的,通过它.我们能够通过创建一个configuration…
Hibernate对普通JDBC的操作进行了轻量级的封装,使得开发人员可以利用Session对象以面向对象的思想来实现对关系数据库的操作. 一般通过Configuration对象读取相应的配置文件来创建SessionFactory,然后通过SessionFactory对象获取Session对象,获取Session对象之后,我们就可以相关数据的操作了. 下面来介绍一下Session对象的几种方法: 1.Session.save()      Session.save(Object obj):把瞬时…
问题:我们在获得一个SessionFactory对象的时候经常是写下面这行代码: SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 那么这行代码到底有什么作用,Configuration的对象的作用是什么? 要回答上述问题必须首先知道Configuration对象的作用. Configuration的作用是:An instance of org.hibernate.cfg.…
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati…
//配置uuid,本来jpa是不支持uuid的,但借用hibernate的方法可以实现. @GeneratedValue(generator = "uuid") @GeneratedValue(generator = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid") 加在id的get方法上面 下面具体操作下: 1.同样的 先新建一个java project.…
配置文件读取 1. 新建FirstController控制器 在appsettings文件内容替换成以下代码 { "Position": { "Title": "EditTool For human", "Name": "Joe Smith" },//json对象 "MyKey": "My appsettings.json Value", "StudentL…
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hibernate中的一个关键概念,正确地理解生命周期,可以更好地了解Hibernate的实现原理,掌握Hibernate的正确用法. Hibernate框架通过Session来管理Java对象的状态,在持久化生命周期中,Java对象存在着如下三种状态: 瞬时状态(Transient) 通过new创建对…
一.综述 hibernate中的对象有三种状态,分别是TransientObjects(瞬时对象).PersistentObjects(持久化对象)和DetachedObjects(托管对象也叫做离线对象). 二.Hibernate对象三种状态转化图: 三.Hibernate对象三种状态简介及转化条件: (1)临时状态: 由Java的new命令开辟内存空间的java对象也就是普通的java对象,如果没有变量引用它它将会被JVM收回.简单的说就是程序里面new一个对象,还没有和session关联…
Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception in thread "main" org.hibernate.AssertionFailure: possible nonthreadsafe access to session.如果 用的不是evict方法,而是clear方法来清session缓存的话,就不会报错. 1.session.e…
图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 域对象 1.2.5 域对象之间的关系 1.2.6 域对象的持久化概念 1.3 小结 1.4 思考题第2章 Java对象持久化技术概述: 2.1…
一.持久化对象的状态        站在持久化的角度, Hibernate 把对象分为 4种状态: 持久化状态,临时状态,游离状态,删除状态.Session 的特定方法能使对象从一个状态转换到另一个状态.   •临时对象(Transient): –在使用代理主键的情况下, OID 通常为null –不处于 Session的缓存中 –在数据库中没有对应的记录 •持久化对象(也叫"托管")(Persist): –OID 不为null –位于 Session缓存中 –若在数据库中已经有和其对…
POJO对象其实就是我们的实体,这篇博客总结一下框架对POJO对象对应数据库主键的生成策略,和一些对POJO对象的简单增删改查的操作.  一,Hibernate框架中主键的生成策略有三种方式: 1,数据库负责生成主键(代理主键)  a,native:表示由设置的方言决定采用什么数据库生成主键方式,例如:在MySQL中会采用自增长的方式,主键字段必须都是整形类型:在Oracle数据库中,会采用序列的增长方式.  b,sequence:表示采用数据库的序列生成主键,适用于Oracle,DB2数据库中…
这两天在学习权限控制模块.以前看过传智播客黎活明老师的巴巴运动网视频教程,里面就讲到权限控制的解决方案,当时也只是看看视频,没有动手实践,虽说看过几遍,可是对于系统中的权限控制还是很迷茫,所以借着这次机会动手实践一下. 黎活明老师的巴巴运动网使用的框架是struts + spring + jpa,大致思路是使用自定义注解,在需要权限控制的方法前使用注解定义方法所需的权限,然后使用AOP拦截访问的方法,在执行目标对象前通过反射取得目标对象所需的权限,然后从当前session中取得登陆用户,遍历用户…
hibernate 非xml实体类配置方法! 这个是hibernate.cfg.xml配置文件 <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configur…