Hibernate 入门

简介:  提问: (这一些题是答辩或是面试可能遇到的或是我经常搞混的题) 1  JDBC是什么? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。

 

 提问:

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

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中相同的数据了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
SQL XML Java
一篇文章让你马上入门Hibernate
一篇文章让你马上入门Hibernate
|
3月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
149 0
|
5月前
|
Java 数据库连接
杨老师课堂之JavaEE三大框架Hibernate入门第一课
杨老师课堂之JavaEE三大框架Hibernate入门第一课
29 0
|
6月前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
6月前
|
SQL Java 数据库连接
Hibernate - 基础入门详解
Hibernate - 基础入门详解
114 1
|
6月前
|
SQL 缓存 Java
Hibernate - 检索策略入门与详解
Hibernate - 检索策略入门与详解
55 0
|
SQL XML Java
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
Mybatis01入门+使用和配置+面试题mybatis与hibernate的区别+ssm与ssh2开发对比
|
SQL Java 数据库连接
hibernate入门学习笔记
hibernate入门学习笔记
81 0
|
存储 SQL Java
Hibernate入门实例
Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
Hibernate入门实例
|
SQL 设计模式 缓存
【框架】[Hibernate]构架知识点详解入门与测试实例
【框架】[Hibernate]构架知识点详解入门与测试实例
118 0
【框架】[Hibernate]构架知识点详解入门与测试实例