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的三个常见类》:
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 之常见的类(配置类,会话工厂类,会话类)的更多相关文章
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- hibernate 非xml实体类配置方法!
hibernate 非xml实体类配置方法! 这个是hibernate.cfg.xml配置文件 <?xml version='1.0' encoding='UTF-8'?> <!DO ...
- EntityFramework Code-First 简易教程(七)-------领域类配置之Fluent API
Fluent API配置: 前面我们已经了解到使用DataAnotations特性来覆写Code-First默认约定,现在我们来学习Fluent API. Fluent API是另一种配置领域类的方法 ...
- jmeter常见参数 vars、prev、ctx 、props 类的api
ctx - ( JMeterContext) - gives access to the context vars - ( JMeterVariables) - gives read/write ac ...
- 三大框架 之 Hibernate框架概述(概述、配置、核心API)
目录 Hibernate框架概述 什么是框架 hibernate简介(JavaEE技术三层架构所用到的技术) hibernate是什么框架 ORM hibernate好处 Hibernate基本使用 ...
- EF实体类配置总结
实体类配置总结 Entity Framework 6 Code First 实践系列(1):实体类配置总结 2014-03-25 12:58 by TJerry, 719 阅读, 6 评论, 收藏, ...
- EntityFramework 系列:实体类配置-根据依赖配置关系和关联
EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关键在于搞清实体类的依赖关系,按此方法配置,快速高效合理.为了方便理解,我们使用简化的实体A和B以及A.B ...
- Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联
EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关键在于搞清实体类的依赖关系,按此方法配置,快速高效合理.为了方便理解,我们使用简化的实体A和B以及A.B ...
- 【转】Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联
本文转自:http://www.cnblogs.com/easygame/p/3622893.html EF实体类的配置可以使用数据注释或Fluent API两种方式配置,Fluent API配置的关 ...
随机推荐
- Study 2 —— 格式化输出
打印人物信息的两种方法第一种: Name = input('Input your name: ') Age = input('Input your age: ') Job = input('Input ...
- windows开启powershell在此系统中禁止执行脚本
首次在计算机上启动 Windows PowerShell 时,现用执行策略很可能是 Restricted(默认设置). Restricted 策略不允许任何脚本运行.若要了解计算机上的现用执行策略,请 ...
- 第14月第17天 automaticallyAdjustsScrollViewInsets contentInsetAdjustmentBehavior
1. automaticallyAdjustsScrollViewInsets self.edgesForExtendedLayout = UIRectEdgeNone; if ([self resp ...
- node版本管理工具nvm安装以及使用
curl命令安装 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash 或者 使用wg ...
- prim算法,克鲁斯卡尔算法---最小生成树
最小生成树的一个作用,就是求最小花费.要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光 ...
- Java并发编程(1)-Java内存模型
本文主要是学习Java内存模型的笔记以及加上自己的一些案例分享,如有错误之处请指出. 一 Java内存模型的基础 1.并发编程模型的两个问题 在并发编程中,需要了解并会处理这两个关键问题: 1.1.线 ...
- [转]python 装饰器
以前你有没有这样一段经历:很久之前你写过一个函数,现在你突然有了个想法就是你想看看,以前那个函数在你数据集上的运行时间是多少,这时候你可以修改之前代码为它加上计时的功能,但是这样的话是不是还要大体读读 ...
- Maven入门---修改tomcat版本及端口及访问路径(四)
Maven中通过添加插件修改tomcat版本及端口及访问路径 --------------------------------------------------------------------- ...
- ubuntu14.04 安装 openssh-server
ubuntu自带的有openssh-client,所以可以通过 ssh username@host 来远程连接linux 可是要想通过ssh被连接,ubuntu系统需要有openssh-server, ...
- classfication中使用图像金字塔和sliding windows提高准确率
之前对imagenet的预训模型进行finetune,找出了很多样本选择时的注意事项,当时在测试如下这张照片时,效果不好,我认为是物体过小造成的,因此尝试使用图像金字塔的方法: 当时结果如下: 一开始 ...