Hibernate api 之常见的类(配置类,会话工厂类,会话类)
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 之常见的类(配置类,会话工厂类,会话类)相关推荐
- 常见的apk专项测试,主要有几类
常见的apk专项测试,主要有几类(主要指项目中经常用到的) 1.稳定性 2.安全性 3.兼容性 4.版本升级 5.流量测试 6.实际测试总结(对整个项目团队是如何进行测试以及测试的内容) 一.稳定性测 ...
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- JAVA Spring 简单的配置和操作 ( 创建实体类, 配置XML文件, 调试 )
< 1 > 实体类 Person package java_spring.modle;/*** 一个实体类( Person )*/ public class Person {private ...
- jdbc工具类 配置版本 20210412_222527.mp4
jdbc工具类 配置版本 20210412_222527.mp4 编写jdbc工具类,要求,代码要灵活,可随时变更登陆用户与连接的数据库 分析: 可以使用基本的写法加上配置 让配置来提供变化的数据 避 ...
- 软件测试面试题:常见的性能测试方法有哪些?以及每类测试方法的目的是什么?
常见的性能测试方法有哪些?以及每类测试方法的目的是什么? 1)基准测试:确保测试环境无问题,初步评估每次只是单独运行一个交易时,当前系统的响应时间是否够快,各服务器的CPU.内存耗用是否合理; 2)单 ...
- 【已解决】联想小新14无线图标消失 | 网络适配器有感叹号 | Windows仍在设置此设备的类配置(代码56)的解决方法
我的电脑型号是联想小新Air-14IIL 2020,起因是系统让我更新驱动(具体什么驱动忘记了),更新后发现网络里只剩飞行模式,没有WLAN,也没有移动热点了,查看设备管理器发现网络适配器下所有驱动都 ...
- 复现上篇文章故障得知:网卡错误56,Windows 仍在设置此设备的类配置的原因
上篇文章:网络属性里的残留网络服务卸载错误0x8007007e导致卡巴斯基安装到klim6.sys错误27300回滚 里提到虚拟机卸载残留VMware Bridge Protocol导致卡巴斯基安装k ...
- windows仍在设置此类设备的类配置,代码56
windows仍在设置此类设备的类配置,代码56 问题 解决办法 以下是我的操作步骤 总结 问题 网络适配器中的驱动程序上全部出现黄色感叹号(VM开头的除外). 解决办法 以下是我的操作步骤 第一步: ...
- 修复无限网卡驱动报错:windows仍在设置此设备的类配置(代码56)
寻找问题:针对win10系统设置里边无法找到"WLAN"及"以太网"问题,先在设备管理器中找到无限网卡,"此电脑"或者"我的电脑& ...
最新文章
- Linux上实现ssh免密码登陆远程服务器
- 系统自动化安装kickstart
- 分享18个常用的网站性能测试工具
- cview类 public_在MFC单文档的View类中,如何获得指向状态栏的指针
- C# 自定义 implicit和explicit转换
- AAAI-2020 || 52篇深度强化学习accept论文汇总
- 关于计算机考试网上操作的题目及答案,《计算机基础考试题及答案》.doc
- 【VB.NET】测验题目Quiz3
- 目标检测——夏侯南溪目标检测模型之输出信息显示
- appium文件夹下无.bin文件_手把手教你Win10应用商店文件夹无权限访问怎么处理
- PAD-Net: Multi-Tasks Guided Prediction-and-Distillation Network for Simultaneous Depth Estimation an
- Python使用requests发送post请求
- 使用kubeadm搭建k8s高可用集群
- uploadify---jQuery多文件上传
- 各种类型sizeof大小及C++有符号数与无符号数进行比较
- 如何解决微信端不能直接跳转浏览器
- 什么是jQuery?jQuery有什么用?
- you have not installed the Java Cryptography Extension (JCE)
- selenium 解决滑块验证的问题,自动化登录12306中国铁路网
- NUXT.JS使用GEETEST极验验证
热门文章
- HDOJ 汉诺塔系列(递推分析)
- vs2010 学习Silverlight学习笔记(18):JavaScript
- [导入]Linq学习笔记(2.2)——深入DLinq查询
- ES6——Promise 对象
- idea java mapper.xml文件sql黄色背景解决
- 【零基础学Java】—自定义异常(四十八)
- 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题
- 让你每天抽出两小时陪小孩子读书,你能坚持吗?
- solo什么意思中文,solo是什么意思,了解一下什么是solo
- 企业要做有价值的私域流量三大关键