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的三个常见类》:

 1 package com.bie.test;
 2
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 import org.junit.Test;
 8
 9 import com.bie.po.User;
10
11 /**
12 * @author BieHongLi
13 * @version 创建时间:2017年3月8日 下午5:28:35
14 *
15 */
16 public class HelloTest2 {
17
18     //SessionFactory代表整个配置文件,所以没必要加载多次,放到全局即可
19     private static SessionFactory sf;
20     static{
21         //1:创建配置管理类对象
22         Configuration config=new Configuration();
23         //加载配置文件,(默认加载/src/hibernate.cfg.xml)
24         config.configure();
25
26         //2:根据加载的配置管理类对象,创建SessionFactory对象
27         sf=config.buildSessionFactory();
28
29         //简介写法,写到一行里面
30         //sf=new Configuration().configure().buildSessionFactory();
31     }
32     @Test
33     public void testHello(){
34         //对象
35         User user=new User();
36         user.setName("张三");
37         user.setPassword("123456");
38         user.setEmail("1748741329@qq.com");
39         user.setPhone("15236083005");
40
41         //3:根据sesson的工厂创建session对象
42         Session session = sf.openSession();
43
44         //开启事务
45         Transaction tx = session.beginTransaction();
46         //执行操作
47         session.save(user);
48         //提交事务
49         tx.commit();
50         //关闭事务
51         session.close();
52         sf.close();
53     }
54
55 }

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

转载于:https://www.cnblogs.com/biehongli/p/6526281.html

Hibernate api 之常见的类(配置类,会话工厂类,会话类)相关推荐

  1. 常见的apk专项测试,主要有几类

    常见的apk专项测试,主要有几类(主要指项目中经常用到的) 1.稳定性 2.安全性 3.兼容性 4.版本升级 5.流量测试 6.实际测试总结(对整个项目团队是如何进行测试以及测试的内容) 一.稳定性测 ...

  2. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  3. JAVA Spring 简单的配置和操作 ( 创建实体类, 配置XML文件, 调试 )

    < 1 > 实体类 Person package java_spring.modle;/*** 一个实体类( Person )*/ public class Person {private ...

  4. jdbc工具类 配置版本 20210412_222527.mp4

    jdbc工具类 配置版本 20210412_222527.mp4 编写jdbc工具类,要求,代码要灵活,可随时变更登陆用户与连接的数据库 分析: 可以使用基本的写法加上配置 让配置来提供变化的数据 避 ...

  5. 软件测试面试题:常见的性能测试方法有哪些?以及每类测试方法的目的是什么?

    常见的性能测试方法有哪些?以及每类测试方法的目的是什么? 1)基准测试:确保测试环境无问题,初步评估每次只是单独运行一个交易时,当前系统的响应时间是否够快,各服务器的CPU.内存耗用是否合理; 2)单 ...

  6. 【已解决】联想小新14无线图标消失 | 网络适配器有感叹号 | Windows仍在设置此设备的类配置(代码56)的解决方法

    我的电脑型号是联想小新Air-14IIL 2020,起因是系统让我更新驱动(具体什么驱动忘记了),更新后发现网络里只剩飞行模式,没有WLAN,也没有移动热点了,查看设备管理器发现网络适配器下所有驱动都 ...

  7. 复现上篇文章故障得知:网卡错误56,Windows 仍在设置此设备的类配置的原因

    上篇文章:网络属性里的残留网络服务卸载错误0x8007007e导致卡巴斯基安装到klim6.sys错误27300回滚 里提到虚拟机卸载残留VMware Bridge Protocol导致卡巴斯基安装k ...

  8. windows仍在设置此类设备的类配置,代码56

    windows仍在设置此类设备的类配置,代码56 问题 解决办法 以下是我的操作步骤 总结 问题 网络适配器中的驱动程序上全部出现黄色感叹号(VM开头的除外). 解决办法 以下是我的操作步骤 第一步: ...

  9. 修复无限网卡驱动报错:windows仍在设置此设备的类配置(代码56)

    寻找问题:针对win10系统设置里边无法找到"WLAN"及"以太网"问题,先在设备管理器中找到无限网卡,"此电脑"或者"我的电脑& ...

最新文章

  1. Linux上实现ssh免密码登陆远程服务器
  2. 系统自动化安装kickstart
  3. 分享18个常用的网站性能测试工具
  4. cview类 public_在MFC单文档的View类中,如何获得指向状态栏的指针
  5. C# 自定义 implicit和explicit转换
  6. AAAI-2020 || 52篇深度强化学习accept论文汇总
  7. 关于计算机考试网上操作的题目及答案,《计算机基础考试题及答案》.doc
  8. 【VB.NET】测验题目Quiz3
  9. 目标检测——夏侯南溪目标检测模型之输出信息显示
  10. appium文件夹下无.bin文件_手把手教你Win10应用商店文件夹无权限访问怎么处理
  11. PAD-Net: Multi-Tasks Guided Prediction-and-Distillation Network for Simultaneous Depth Estimation an
  12. Python使用requests发送post请求
  13. 使用kubeadm搭建k8s高可用集群
  14. uploadify---jQuery多文件上传
  15. 各种类型sizeof大小及C++有符号数与无符号数进行比较
  16. 如何解决微信端不能直接跳转浏览器
  17. 什么是jQuery?jQuery有什么用?
  18. you have not installed the Java Cryptography Extension (JCE)
  19. selenium 解决滑块验证的问题,自动化登录12306中国铁路网
  20. NUXT.JS使用GEETEST极验验证

热门文章

  1. HDOJ 汉诺塔系列(递推分析)
  2. vs2010 学习Silverlight学习笔记(18):JavaScript
  3. [导入]Linq学习笔记(2.2)——深入DLinq查询
  4. ES6——Promise 对象
  5. idea java mapper.xml文件sql黄色背景解决
  6. 【零基础学Java】—自定义异常(四十八)
  7. 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题
  8. 让你每天抽出两小时陪小孩子读书,你能坚持吗?
  9. solo什么意思中文,solo是什么意思,了解一下什么是solo
  10. 企业要做有价值的私域流量三大关键