1:Configuration :配置管理类对象

  1.1:config.configure():

     加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cfg.xml

  1.2:config.configure(“cn/config/hibernate.cfg.xml”);

     加载指定路径下指定名称的主配置文件

  1.3:config.buildSessionFactory();

      创建session的工厂对象

2: SessionFactory :session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)

  2.1:sf.openSession();

      创建一个sesison对象

  2.2:sf.getCurrentSession();

     创建session或取出session对象

3:Session:

  3.1:session对象维护了一个连接(Connection), 代表了与数据库连接的会话。

    a:保存的方法:session.save(对象);

    b:更新的方法:session.update(对象);  

      注意:更新必须写上主键的名称,其他字段都要设置值;

    c:主键查询的方法:session.get(对象,主键);/session.load(对象,主键);load方法这个支持懒加载。

    d:保存或者更新:session.saveOrUpdate(对象);如果没有主键就保存,存在主键就更新;保存或者更新的方法,没有设置主键,执行保存,有设置主键,执行更新操作,如果设置主键不存在,就报错;

    e:删除的方法:session.delete(对象);删除必须给主键;

3.2:Hibernate最重要的对象:

     只用使用hibernate与数据库操作,都用到这个对象

3.3:session.beginTransaction();

     开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!

  3.4:Transaction:hibernate事务对象;


使用Hibernate api 之常见的类(配置类,会话工厂类,会话类)案例:

  《这里只是列举了Hibernate的三个常见类,其他配置文件和实体类之前的博客写过,这里重点介绍Hibernate的三个常见类》:

 package com.bie.test;

 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import com.bie.po.User; /**
* @author BieHongLi
* @version 创建时间:2017年3月8日 下午5:28:35
*
*/
public class HelloTest2 { //SessionFactory代表整个配置文件,所以没必要加载多次,放到全局即可
private static SessionFactory sf;
static{
//1:创建配置管理类对象
Configuration config=new Configuration();
//加载配置文件,(默认加载/src/hibernate.cfg.xml)
config.configure(); //2:根据加载的配置管理类对象,创建SessionFactory对象
sf=config.buildSessionFactory(); //简介写法,写到一行里面
//sf=new Configuration().configure().buildSessionFactory();
}
@Test
public void testHello(){
//对象
User user=new User();
user.setName("张三");
user.setPassword("123456");
user.setEmail("1748741329@qq.com");
user.setPhone("15236083005"); //3:根据sesson的工厂创建session对象
Session session = sf.openSession(); //开启事务
Transaction tx = session.beginTransaction();
//执行操作
session.save(user);
//提交事务
tx.commit();
//关闭事务
session.close();
sf.close();
} }

Hibernate三个常见类,配置类,会话工厂类,会话类,over!!!

Hibernate api 之常见的类(配置类,会话工厂类,会话类)的更多相关文章

  1. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. hibernate 非xml实体类配置方法!

    hibernate 非xml实体类配置方法! 这个是hibernate.cfg.xml配置文件 <?xml version='1.0' encoding='UTF-8'?> <!DO ...

  3. EntityFramework Code-First 简易教程(七)-------领域类配置之Fluent API

    Fluent API配置: 前面我们已经了解到使用DataAnotations特性来覆写Code-First默认约定,现在我们来学习Fluent API. Fluent API是另一种配置领域类的方法 ...

  4. jmeter常见参数 vars、prev、ctx 、props 类的api

    ctx - ( JMeterContext) - gives access to the context vars - ( JMeterVariables) - gives read/write ac ...

  5. 三大框架 之 Hibernate框架概述(概述、配置、核心API)

    目录 Hibernate框架概述 什么是框架 hibernate简介(JavaEE技术三层架构所用到的技术) hibernate是什么框架 ORM hibernate好处 Hibernate基本使用 ...

  6. EF实体类配置总结

    实体类配置总结 Entity Framework 6 Code First 实践系列(1):实体类配置总结 2014-03-25 12:58 by TJerry, 719 阅读, 6 评论, 收藏,  ...

  7. EntityFramework 系列:实体类配置-根据依赖配置关系和关联

    EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关键在于搞清实体类的依赖关系,按此方法配置,快速高效合理.为了方便理解,我们使用简化的实体A和B以及A.B ...

  8. Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联

    EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关键在于搞清实体类的依赖关系,按此方法配置,快速高效合理.为了方便理解,我们使用简化的实体A和B以及A.B ...

  9. 【转】Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联

    本文转自:http://www.cnblogs.com/easygame/p/3622893.html EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关 ...

随机推荐

  1. 小心错误使用EasyUI 让网站性能减半

    先不谈需求,和系统架构,直接上来就被抛来了一个问题----基础性能太差了,一个网页打开要好几秒.我了个天,我听了也简直不敢相信,难道是数据量特别大?还是其中业务逻辑特别复杂? 简单的介绍下,基础系统是 ...

  2. JVM锁简介:偏向锁、轻量级锁和重量级锁

    转自:https://www.aimoon.site/blog/2018/05/21/biased-locking/ 比较复杂,简略见另一篇:https://www.cnblogs.com/twohe ...

  3. ubuntu配置lua环境,并进行c与lua的相互调用

    1.安装lua环境 先查看一下apt可获取的lua版本 我们选择lua5.1版本进行安装 sudo apt install lua5.1 安装完之后测试一下是否安装成功,如果可以正常使用,则lua环境 ...

  4. [iOS]App上架流程[利用Archive进行上传]

    今天给大家带来项目如何上架的教程 准备: 1. 一个开发者账号(需要交过钱的,

  5. Linux - 系统基础操作

    wall # 给其它用户发消息 whereis ls # 查找命令的目录 which # 查看当前要执行的命令所在的路径 clear # 清空整个屏幕 reset # 重新初始化屏幕 cal # 显示 ...

  6. 论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing

    Summary 本文提出超越神经架构搜索(NAS)的高效神经架构搜索(ENAS),这是一种经济的自动化模型设计方法,通过强制所有子模型共享权重从而提升了NAS的效率,克服了NAS算力成本巨大且耗时的缺 ...

  7. 操作系统笔记(六)页面置换算法 FIFO法 LRU最近最久未使用法 CLOCK法 二次机会法

    前篇在此: 操作系统笔记(五) 虚拟内存,覆盖和交换技术 操作系统 笔记(三)计算机体系结构,地址空间.连续内存分配(四)非连续内存分配:分段,分页 内容不多,就不做index了. 功能:当缺页中断发 ...

  8. 原生JS给元素添加class属性

     有下面这三种简单语句. document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的 document ...

  9. ubuntu 14.04 软件中心闪退解决方案

    法一: gksudo gedit /usr/share/software-center/softwarecenter/ui/gtk3/views/lobbyview.py 注释下面这句话(注释使用#号 ...

  10. gamma校正

    1 gamma校正背景 在电视和图形监视器中,显像管发生的电子束及其生成的图像亮度并不是随显像管的输入电压线性变化,电子流与输入电压相比是按照指数曲线变化的,输入电压的指数要大于电子束的指数.这说明暗 ...