JDBC:(Java Data Base Connectivity)java数据库连接

java.sql包提供JDBC API,可通过它编写訪问数据库的程序代码.当中经常使用的接口和类包含以下内容:

  • DriverManager:驱动程序管理器,负责创建数据库连接
  • Connection:代表数据库连接
  • Statement:负责运行SQL语句
  • PreparedStatement:负责运行SQL语句,具有提前定义SQL语句的功能
  • ResultSet:代表SQL查询语句的查询结果集


Hibernate(Java对象持久化技术):

Hibernate是一个开放源码的对象关系映射框架,它对JDBC进行了很轻量级的对象封装。使得Java程序猿能够随心所欲的使用对象编程思维来操纵数据库。 Hibernate能够应用在不论什么使用JDBC的场合,既能够在Java的client程序使用,也能够在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中代替CMP,完毕数据持久化的重任。

Hibernate的核心接口一共同拥有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。



Session接口:负责运行被持久化对象的CRUD操作(CRUD的任务是完毕与数据库的交流,包括了非常多常见的SQL语句。

)。但须要注意的是Session对象是非线程安全的。同一时候,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,事实上指的是Hibernate中的session。而以后会将HttpSession对象称为用户session。


SessionFactory接口:负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。

这里用到了工厂模式。须要注意的是SessionFactory并非轻量级的。由于普通情况下。一个项目通常仅仅须要一个SessionFactory就够,当须要操作多个数据库时,能够为每一个数据库指定一个SessionFactory。


Transaction接口:是一个可选的API,能够选择不使用这个接口,取而代之的是Hibernate 的设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包含JDBC的事务、JTA
中的UserTransaction、甚至能够是CORBA 事务。

之所以这样设计是能让开发人员能够使用一个统一事务的操作界面,使得自己的项目能够在不同的环境和容器之间方便地移值。

Query接口:让你方便地对数据库及持久对象进行查询,它能够有两种表达方式:HQL语言或本地数据库的SQL语句。

Query常常被用来绑定查询參数、限制查询记录数量,并终于运行查询操作。


Criteria接口:与Query接口很类似,同意创建并运行面向对象的标准化查询。

值得注意的是Query接口也是轻量级的,它不能在Session之外使用。


Configuration 接口:作用是对Hibernate
进行配置,以及对它进行启动。在Hibernate 的启动过程中。Configuration 类的实例首先定位映射文档的位置。读取这些配置,然后创建一个SessionFactory对象。尽管Configuration 接口在整个Hibernate 项目中仅仅扮演着一个非常小的角色,但它是启动hibernate
时所遇到的每个对象。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Hibernate对象持久化框架的更多相关文章

  1. 怎么搭建Hibernate对象持久化框架?

    DBC:(Java Data Base Connectivity)java数据库连接 java.sql包提供JDBC API,可通过它编写访问数据库的程序代码.其中常用的接口和类包括下面内容: Dri ...

  2. Hibernate对象持久化的三种状态

    1.三种状态: public static void testSel() { Session session = HibernateUtils.openSession(); Transaction t ...

  3. 学习ORM框架—hibernate(三):跟踪持久化对象状态,掌握对象持久化

    准备工作 在上篇博客中学习ORM框架—hibernate(一):初识hibernate,通过简单的实例说明O和R的映射过程.本篇博客将要介绍hibernate中持久化对象的状态,并使用hibernat ...

  4. (转)Hibernate框架基础——Java对象持久化概述

    http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构  说明 ...

  5. 《精通Hibernate:Java对象持久化技术详解》目录

    图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1 ...

  6. 持久化框架Hibernate 开发实例(一)

    1 Hibernate简介 Hibernate框架是一个非常流行的持久化框架,其中在web开发中占据了非常重要的地位, Hibernate作为Web应用的底层,实现了对数据库操作的封装.HIberna ...

  7. 【持久化框架】Mybatis与Hibernate的详细对比

        前言 这篇博文我们重点分析一下Mybatis与hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理. Mybatis [持久化框架]Myba ...

  8. hibernate持久化框架

    Hibernate是一个优秀的持久化框架 瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态 持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态 持久化: ...

  9. 【持久化框架】Mybatis与Hibernate的详细对比(转发)

    前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理. Mybatis [持久化框架]Mybatis简 ...

随机推荐

  1. vs2005及以上版本的程序分发问题

    我们使用vs2005及以上版本编译的应用程序(C/C++),在客户机器运行时,会出现: “由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题” 那么,我们怎么解决这个问题呢 ...

  2. linux c编程 多线程(初级)《转载》---赠人玫瑰,手有余香!

    原文地址:http://blog.csdn.net/liang890319/article/details/8393120   进程简单的说就是把一段代码复制成多份,并让他们同时执行.进程间通信是为了 ...

  3. javacsript (十一) 对象

    他的对象的概念和python的字典的格式一样, JavaScript 对象 对象由花括号分隔.在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义.属性由逗号分隔: var ...

  4. MySql安装(rpm)和启动配置

    MySql安装(rpm)和启动配置 安装环境: OS:Oracle Linux 5.9 安装步骤: 1.解压MySql安装包 [root@bakdbserver mysql]# tar -xf MyS ...

  5. 14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新:

    14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新: InnoDB执行某些任务在后台, 包括flush 脏 ...

  6. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  7. 2014辽宁省赛 Repeat Number

    问题 C: Repeat Number 时间限制: 1 Sec  内存限制: 128 MB [cid=1073&pid=2&langmask=0">提交][状态][论坛 ...

  8. WebService-03-使用CXF开发服务端和客户端

    写在前面的话 前面两节说了使用Java提供的包开发服务端和客户端,现在使用CXF来开发,CXF提供了两个类发而服务,一个是ServerFactoryBean,另一个是JaxWsServerFactor ...

  9. nRF Toolbox 1.2 使用AKII的实现,而Becon始终不好使

    这几天调试使用nRF51822驱动mpu6050及其数据传输到android中,调试的过程遇到一些困难,apptimer不太会用,然后就參考了下ble_app_hrs的程序,结果成功搞定,demo的价 ...

  10. SCU 3133(博弈)

    传送门:windy和水星 -- 水星游戏 2 题意:在一张由 n*m 的格子组成的棋盘上放着 k 个骑士每个骑士的位置为(xi,yi),表示第xi行,第yi列骑士如果当前位置为(x,y),一步可以走的 ...