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!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏YG小书屋

ES集群状态详细信息

1252
来自专栏LeoXu的博客

Tapestry 教程(七)在Tapestry中一起使用Hibernate

好了,你填写了所有的输入域,提交了这个表单(没有任何验证错误),瞧:你又回到了相同的表单,所有的格子里面都是空的。发生了什么,数据都到哪儿去了?

483
来自专栏微信公众号:Java团长

Spring框架简介

随着软件结构的日益庞大,软件模块化趋势出现,软件开发也需要多人合作,随即分工出现。如何划分模块,如何定义接口方便分工成为软件工程设计中越来越关注的问题。良好的模...

942
来自专栏名山丶深处

springboot集成schedule(深度理解)

2055
来自专栏挖坑填坑

ABP框架学习之——数据校验

542
来自专栏用户画像

6.1.3 系统总线的结构

单总线结构将CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上,运行I/O设备之间、I/O设备与主存之间直接交换信息。CPU与主存,CPU与外设之间可以...

551
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

2318
来自专栏Kirito的技术分享

浅析Spring中的事件驱动机制

今天来简单地聊聊事件驱动,其实写这篇文章挺令我挺苦恼的,因为事件驱动这个名词,我没有找到很好的定性解释,担心自己的表述有误,而说到事件驱动可能立刻联想到如此众多...

5709
来自专栏全栈架构

Spring Boot 与 Kotlin使用Spring-data-jpa简化数据访问层

在《Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL》 中介绍了一种基本的数据访问方式,结合构建RESTful API和使用...

874
来自专栏IT可乐

SpringMVC详解(一)------入门实例

  本系列教程我们将详细的对SpringMVC进行介绍,相信你在学完本系列教程后,一定能在实际开发中运用自如。 1、什么是 SpringMVC ?   在介绍什...

1967

扫码关注云+社区