在上一篇文章hibernate学习系列-----(1)开发环境搭建中,大致总结了hibernate的开发环境的搭建步骤,今天,我们继续了解有关hibernate的知识,先说说这篇文章的主要内容吧:

  1. Configuration类
  2. SessionFactory接口
  3. Session接口
  4. Transaction接口
  5. Query和Criteria接口

下面就进行分类别地详细说明:

Configuration类

  1. 功能描述:Configuration类负责管理Hibernate的配置信息作并根据配置信息启动Hibernate。
  2. 详细说明:提供数据库的链接参数;数据库连接池以及对象关系文件的配置,通过Configuration类来加载配置信息并且启动hibernate的应用程序
  3. hibernate的配置方法:(1):使用hibernate.properties文件进行配置;(2)使用xml文件进行配置,也就是“hibernate.cfg.xml”文件,推荐使用后者

SessionFactory接口

  • SessionFactory实例对应一个数据存储源,我们的应用程序就是通过SessionFactory实例来获取我们的Session对象,SessionFactory的特点有:
    • (1)线程安全,一个SessionFactory实例可以被应用的多个线程共享
    • (2)重量级:需要很大的缓存来存储预定义的SQL语句以及映射数据,so,如果我们的应用程序只使用一个数据库,则只需建立一个SessionFactory对象即可

Session接口

  • Session又被称之为持久化管理器,它提供了和持久化相关的CRUD操作,在hibernate中应用最为广泛。Session接口有哪些特点呢?
    • (1)线程不安全:它代表了我们对数据库的一次操作,因此在开发中应尽量避免多个线程共享同一个Session实例;
    • (2)轻量级:它的销毁和创建不需要消耗太多资源;
    • (3)hibernate的一级缓存:存放了当前工作单元加载的一些对象,每一个Session都有自己的缓存,缓存中的对象只能被当前的工作单元所使用;
    • (4)SessionFactory对象打开:使用完毕后要及时关闭。

Transaction接口

  • Transaction接口是hibernate中的事务接口,它包括:JDBC API、JTA,hibernate在进行持久化操作时(CRUD),必须在事务中加以控制。

Query和Criteria接口

  • Query和Criteria接口是hibernate中的查询接口:
    • (1)Query接口包装了一个HQL(Hibernate Query Language)查询语句。
    • (2)Criteria接口比较面向对象,擅长执行动态查询。

hibernate的核心接口就大致说到这儿了,下面说一下hibernate的工作机制,先上图:

这张图还是比较好理解的,我就不再说明。

hibernate学习系列-----(2)hibernate核心接口和工作机制的更多相关文章

  1. Hibernate 核心接口和工作机制

    主要内容 Configuration类 sessionFactory接口 session接口 Transaction接口 Query 和 criteria接口 1.Configuration类 负责管 ...

  2. Hibernate核心接口和工作原理

    Hibernate核心接口和工作原理 Hibernate有五大核心接口,分别是:Session .Transaction .Query .SessionFactory .Configuration . ...

  3. Hibernate学习一:Hibernate注解CascadeType

    http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...

  4. java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制

    ClassLoader的工作机制 java应用环境中不同的class分别由不同的ClassLoader负责加载. 一个jvm中默认的classloader有Bootstrap ClassLoader. ...

  5. hibernate学习系列-----(9)hibernate对集合属性的操作之Map集合篇

    照旧,先新建一个StudentMap.java实体类,将hobby属性使用map集合接口来存放: package com.joe.entity; import java.util.Map; publi ...

  6. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Hibernate详解(5)——Hibernate核心接口和工作原理

    Hibernate核心接口 Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration .这五个接口构成了Hi ...

  8. hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询

    紧接着上一篇,今天继续hibernate的学习总结,来聊一聊hibernate的基本查询方法,先说说HQL(hibernate Query Language):它是官方推荐的查询语言.在开始写代码之前 ...

  9. hibernate学习系列-----(7)hibernate对集合属性的操作之List集合篇

    今天要写的内容其实不多,本打算将hibernate对集合的操作的内容直接归结为一篇的,但想一想,还是分开写的比较好,毕竟前面的已经发布出去来了,废话不多说,开始吧! 依旧新建一个StudentList ...

随机推荐

  1. 解决hibernate向mysql插入中文乱码问题(更改MySQL字符集)

    1.首先需要修改mysql数据库的配置文件my.ini,此文件放在mysql根目录下.在此文件下查找default-character-set属性,并将其值更改为utf8(注意:不是utf-8,也要注 ...

  2. java io 网络编程 高性能NIO

    很久没写了,一是觉得这后台不怎么方便,二是 写的时候突然觉得没兴趣了. 还好,今天突然想记一下,那就随便写吧.  1.一开始还是放几个连接.  什么是 同步,异步,阻塞,非阻塞 : http://bl ...

  3. nutch2.3.1源码分析——InjectorJob

    InjectorJob实现的功能是:从种子站点文件当中读取站点信息并且将这些站点的个数.url(url以 域名:协议/端口号/路径名 设为形式存储在数据库当中,为了提高读写速度)回写到Context类 ...

  4. 洛谷 P1463 [SDOI2005]反素数ant && codevs2912反素数

    题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...

  5. [ CodeVS冲杯之路 ] P1166

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1166/ 有许久没有刷题了,忙着过中秋去了嘿嘿 首先它的每一行是独立的,我们可以直接把它拆分成 n 互不相关的子问题做 ...

  6. javascript验证前端页面

    数据表结构 1.html页面 <!DOCTYPE html> <html> <head> <title>注册</title> <met ...

  7. springboot静态资源映射

    springboot静态资源映射 WebMvcAutoConfiguration @Override public void addResourceHandlers(ResourceHandlerRe ...

  8. 【贪心】Mixing Milk

    题目描述 The Merry Milk Makers company buys milk from farmers, packages it into attractive 1- and 2-Unit ...

  9. 后门构建工具Backdoor Factory

    后门构建工具Backdoor Factory   在渗透测试中,后门程序帮助渗透测试人员在目标机器上执行各种预期的操作.例如,它可以建立从目标主机到攻击机的网络连接,方便渗透测试人员控制目标主机.Ka ...

  10. readlink命令

    转:http://blog.csdn.net/zz198808/article/details/9319479 readlink是linux系统中一个常用工具,主要用来找出符号链接所指向的位置. 在U ...