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 条评论
登录 后参与评论

相关文章

来自专栏linux驱动个人学习

用户态/内核态、用户栈/内核栈

内核态就是拥有资源多的状态,或者说访问资源多的状态,也称为特权态。相对来说,用户态就是非特权态,访问的而资源将受到限制。如果一个程序运行在特权态,该程序就可以访...

901
来自专栏Python自动化测试

python接口测试之401错误的分析和解决(十七)

通过一个案例来分析在HTTP的请求中403错误的解决以及HTTP的状态码中403怎么理解,见发送一个请求后,返回的状态码,见如下的信息:

1016
来自专栏云计算教程系列

5 种 Docker 日志最佳实践

微服务和容器很好地结合了,但是它们的结合让日志记录也变成了一个难题。作者在本文描述了一些因素,在设置监控的时候是需要考虑的。

7100
来自专栏轻量级微服务

微服务下使用网关 Spring Cloud Gateway

客户端向 Spring Cloud Gateway 发出请求,如果请求与网关程序定义的路由匹配,则将其发送到网关 Web 处理程序,此处理程序运行特定的请求过滤...

520
来自专栏阿杜的世界

Spring Boot:定制servlet filters

在实际的web应用程序中,经常需要在请求(request)外面增加包装用于:记录调用日志、排除有XSS威胁的字符、执行权限验证等等。除了上述提到的之外,Spri...

491
来自专栏性能与架构

Redis过期key的删除策略

key的过期时间都保存在过期字典中,如果一个键过期了,那么redis什么时候会被删除呢? 删除策略 (1)惰性删除 对key进行操作时才进行过期检查,对CPU最...

4007
来自专栏王磊的博客

你不知道的RabbitMQ集群架构全解

本文将系统的介绍一下RabbitMQ集群架构的特点、异常处理、搭建和使用中要注意的一些细节。

731
来自专栏Spring相关

Spring Boot遇到的某些问题

因为项目要访问本地硬盘的文件所以要去Tomcat的server.xml里配置Context ,

945
来自专栏别先生

Hibernate的主配置文件hibernate.cfg.xml

1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息): 常用配置查看源...

2278
来自专栏Java3y

过滤器监听器面试题都在这里

以下我是归纳的过滤器监听器知识点图: ? 图上的知识点都可以在我其他的文章内找到相应内容。 监听器常见面试题 监听器有哪些作用和用法? 监听器有哪些作用和用法?...

3056

扫码关注云+社区