关于hibernate的笔试题(一)

1.简要谈谈对hibernate框架的理解(是什么,原理,优点,应用场景以及为什么使用这个框架等)

hibernate是什么:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSPWeb应用中使用,最具革命 意义的是,Hibernate可以在应用EJBJ2EE架构中取代CMP,完成数据持久化的重任。

hibernate工作原理:

①读取并解析hibernate.cfg.xml配置文件;

②由hibernate.cfg.xml中的<mapping resource="com/xx/user.hbm.xml">读取并解析映射信息;

.通过SessionFactory sf = config.buildSessionFactory();创建SessionFactory

Session session = sf.openSession();//打开Sesssion

Transaction tx = session.beginTransaction();//创建并启动事务Transation

persistent operate操作数据,持久化操作

tx.commit();//提交事务

⑧关闭Session

⑨关闭SesstionFactory

Hibernate技术特点:

1 标准的orm框架,程序员不需要编写SQL语句。

2  具有良好的数据库无关性,即数据库发生变化的话,代码无需再次编写。

3  学习门槛高,需要对数据关系模型有良好的基础,而且在设置OR映射的时候,需要考虑好性能和对象模型的权衡。

4  程序员不能自主的去进行SQL性能优化。

应用场景:

需求明确、业务固定的项目,例如OA项目、ERP项目等

 

为什么用hibernate

 JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

HIbernate是基于JDBC的主流持久化框架,是一个优秀的对象关系映射实现,它在很大程度上简化了DAO层的编码工作;

Hibernate使用java反射机制,而不是字节码增强程序来实现透明性;

Hibernate性能非常好,因为它是一个轻量级框架,映射的灵活性很出色,它支持各种关系数据库,从一对一到多对多的各种复杂关系。

2. 什么是ORM?

对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换  。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。---百度百科

对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。---百度百科

ORM的方法论基于三个核心原则:
· 简单:以最基本的形式建模数据。
· 传达性:数据库结构被任何人都能理解的语言文档化。
· 精确性:基于数据模型创建正确标准化了的结构。

3.程序中的实体类与数据库中表之间的关系是怎样关联起来的,需要做怎样的配置?

实体类与数据库中表通过配置文件中的映射关系进行关联,核心配置文件中的引入;

配置:

class标签:用来描述类与表的映射关系。

* name:类的全路径的。(Object

* table:数据库中的表名称。(Relational

*如果类名和表名称一致的话,那么table可以省略。

 

id标签:用来描述类中的OID与表中的主键建立映射。

 

property标签:用来描述类中的属性与表中的字段建立映射

* name:类中的属性名称。

* column :表中的字段名称。类中的属性名称和表中的字段名称一致column可以省略。

* length:字段的长度。(Hibernate自动建表的时候)

* type:数据类型。

 

最后在hibernate.cfg.xml文件中引入我们配置的映射文件

 

4.创建一个SessionFactory需要占用大量的资源,频繁的创建和关闭会影响程序的性能,如何去优化?

使用工具类

5. 谈谈hibernate的工作原理

①读取并解析hibernate.cfg.xml配置文件;

②由hibernate.cfg.xml中的<mapping resource="com/xx/user.hbm.xml">读取并解析映射信息;

.通过SessionFactory sf = config.buildSessionFactory();创建SessionFactory

Session session = sf.openSession();//打开Sesssion

Transaction tx = session.beginTransaction();//创建并启动事务Transation

persistent operate操作数据,持久化操作

tx.commit();//提交事务

⑧关闭Session

⑨关闭SesstionFactory

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值