Hibernate 入门

 提问:

(这一些题是答辩或是面试可能遇到的或是我经常搞混的题)

1  JDBC是什么?

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。

2  JDBC遇到的一些麻烦是什么?

1 从效率上来说,每次操作都要重新连接数据库,对数据库的压力比较大。

2 从代码上考虑,每次执行的语句都是经过编译及连接的控制,还有考虑事务提交回滚什么的,程序员的重复性和验证性的工作量加大。

3 java提倡的是面向对象编程,但是数据库是对数据进行操作。 

3 三层架构是哪三成?

界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。

4 数据库分页的关键字(oracle,MySQL 以及 SQL Server)?

Oracle---》 ROWNUM ;MySQL---》limit  ;SQL Server---》top

5 谈谈你对hibernate缓存的了解?

开始今天的知识点总结

1 认识hibernate

hibernate是轻量级JavaEE应用的一个持久层框架。它的作用在于管理Java实体类到数据库表之间的映射关系,并且提供数据查询和获取数据的方法,可以大幅度的缩短使用JDBC处理数据持久化的时间。

java则是一门面向对象的编程语言,hibernate完成了对象模型和基于SQL关系模型的映射关系,使得程序员可以只用这个来面向对象编程。

2 对象--关系映射

ORM全称Object/Relation Mapping,对象/关系数据库映射。该框架的基本特征就是完成面向对象的编程语言到关系数据库之间的映射。

因为java一开始项目就是面向对象分析,面向对象设计,面向对象编程,所以关系数据库就把数据库的数据包装成面向对象模型,这就是ORM框架。

面向对象编程的优点:

1、      面向对象建模,操作

2、      多态,继承,封装

3、      摒弃难以理解的过程

4、      简单易用,容易理解

关系型数据库的优点:

1、      大量数据查询、排序

2、      集合数据连接操作、映射

3、      数据库访问的并发、事物

4、      数据库的约束、隔离

结合着两个的优点,采用ORM框架后,我们的应用程序就可以直接访问对象的方式对对象进行持久化(CRUD)。

基本映射的方式:

1 数据库表映射类(实体类———数据库表):持久化类被映射到一个数据表 ,当使用一个持久类来创建,增加,修改,伤处实例的时候,系统会自动的对这个表进行CRUD操作。

2 数据表的行映射对象(new实例———行):持久化类会生成很多实例,每个实例就对应数据库一行的操作。每个持久化对象对应数据表的一行记录。

3 数据表中的列映射对象的属性(属性———列):持久化类对属性值进行修改的时候,orm将会转化成数据库对应行指定列来改变值。

4 Hibernate的介绍

Hibernate是一个面向JAVA环境的对象/关系数据库映射工具,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去 ,Hibernate的目标主要是为了释放开发者通常的数据持久化相关的编程的繁重任务。

对于一数据为中心的程序员来说,hibernate不是最好的方法,但是对于以java为中心的程序员来说,hibernate是最有用的。

Hibernate还提供数据查询和获取数据的方法。

5 Hibernate就是一个ORM框架的典型代表;那么与其他的ORM框架相比,他的特点在于什么地方?

1、      开源和免费的License,方便需要时研究源码,改写源代码,进行功能定制。

2、      轻量级封装,调试容易,减轻程序员负担。

3、      有可扩展性,API开放,功能不够用时,自己可以编码扩展。

6 Hibernate持久化解决方案:?

Hibernate的持久化解决方案用户将不再使用jdbc来链接数据库进行操作了。而是以面向对象的方式进行持久层操作。对于数据的访问,事务用户都不用管了。将应用从底层的JDBC中抽象出来,通过配置文件管理底层的JDBC连接,让Hibernate解决持久化访问的实现。

7 hibernate工作原理图:

8 理解JAVA对象的3种形态

1 瞬态 ---对象是通过new出来的,被认为处于瞬态。

瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识(ID),如果程序中失去了瞬态对象的引用,瞬态对象将被垃圾回收机制销毁。

2 持久态--- 持久化实例在数据库中有对应的记录,并拥有一个持久化标识(id),持久化的实例可以是刚保存的。也可以是刚被加载的。无论那种,持久化对象都必须与指定的Hibernate Session关联。

Hibernate会检测到处于持久化状态对象的改动,在当前操作执行完成时将对象数据写回数据库。数据库与java中的改变是同步的。

3 游离态-- 这个实例他曾经处于持久化状态,但随着与之关联的session被关闭,该对象就变成游离状态了。

游离对象的引用依旧有效,对象可以继续被修改,只是不会同步到数据库中。如果重新让游离对象与某个session关联,该对象会重新转换为持久化状态。

比如说先关闭了session关联,在java中改变对象的属性,这时数据库数据不会改变,但是当你连接到session的时候,数据库的数据就会改变成你java中相同的数据了。

时间: 2024-08-28 03:49:43

Hibernate 入门的相关文章

史上最简单的Hibernate入门简单介绍

事实上Hibernate本身是个独立的框架,它不须要不论什么web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了非常多非Hibernate的东西,比方: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss.这easy让人产生Hibernate复杂难懂的误解,特别是打击了刚開始学习的人的积极性. 在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,

Hibernate入门第二课 Hibernate Tools for Eclipse Plugins安装

Hibernate入门第二课 Hibernate Tools for Eclipse Plugins安装 你们可以直接去,http://blog.csdn.net/wei_chong_chong/article/details/52979683,楼主写的挺好的. 自己心得: Hibernate装了好久都装不上去,不是安装过程出了问题,原来是下载的那些软件根本就不对,虽然都有hibertane的英文,但是具体名称要看懂啊,最好做到和视频里面一模一样.

Hibernate入门教程

上一章我们学了一下Hibernate的配置和单张表的操作,这一章说一下Hibernate中一对一的配置 Hibernate入门教程 第二章 Hibernate的一对一单边双边配置.以及增删改查 预备知识: 1.fetch ,可以设置fetch = "select" 和 fetch = "join" fetch ="select"是在查询的时候先查询出一端的实体,然后在根据一端的查询出多端的实体,会产生1+n条sql语句; fetch = &quo

【转】Hibernate入门实例

1. 环境配置 1.1 hiberante环境配置 hibernate可实现面向对象的数据存储.hibernate的官网:http://hibernate.org/ 官网上选择hibernate ORM,可以下载最新的hibernate,还有配套的document教程 http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/ .下载到的hibernate文件夹中有document文档(hibernate\documenta

Hibernate入门篇——第一个Hibernate应用

Hibernate入门 第一步: 挑选jar包 在工程下新建lib文件夹,然后将Hibernate基本包复制进去.可以采用Maven来获取这些包: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.7.Final</version> </dependency> 也可

第四章 Hibernate入门

第四章 Hibernate入门4.1 框架技术    4.1.1 框架的概念        框架是一个提供了可重用的公共结构的半成品.    4.1.2 主流框架        4.1.2.1 Struts框架        4.1.2.2 Struts2框架        4.1.2.3 Hibernate框架            一个优秀的持久化框架,负责简化对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作.        4.1.2.4 Spring框架4.2 Hibern

Hibernate入门案例及增删改查

一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge() {

Hibernate入门_增删改查

一.Hibernate入门案例剖析:  ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge()

(01)Hibernate入门

1.Hibernate在SSH中的地位 SSH 序号 技术 作用 1 Struts 基于mvc模式的应用层框架技术! 2 Spring 创建对象.处理对象的依赖关系以及框架整合! 3 Hibernate 基于持久层的框架(数据访问层使用)! 2.DAO层的代码是如何编写的? (1)操作XML数据 (2)使用Jdbc技术 a)原始的jdbc操作, Connection/Statement/ResultSet b)自定义一个持久层框架, 封装了dao的通用方法 c)DbUtils组件, 轻量级的da

Hibernate 入门 04 - Hibernate中Java对象的三种状态

目录:(后续不断更新...) Hibernate 入门 01 - 框架技术 (介绍Hibernate框架的发展由来) Hibernate 入门 02 - Hibernate介绍及其环境搭建 Hibernate 入门 03 - 使用Hibernate完成持久化操作 Hibernate 入门 04 - Hibernate中Java对象的三种状态 ▁▃▅ Hibernate中Java对象的三种状态▅▃▁ 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久