- 8
- 0
- 约1.9万字
- 约 31页
- 2021-04-13 发布于天津
- 举报
1、 什么是ORM ?
答:对象关系映射(Object-Relational Mapping ,简称ORM )是一种为了解决程序的面
向对象模型与数据库的关系模型互不匹配问题的技术;简单的说, ORM是通过使用描述对
象和数据库之间映射的元数据(在 Java中可以用XML或者是注解),将程序中的对象自
动持久化到关系数据库中或者将关系数据库表中的行转换成 Java对象,其本质上就是将数
据从一种形式转换到另外一种形式。
2、 持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些?
答:所谓持久就是将数据保存到可掉电式存储设备中以便今后使用,简单的说,就是将内
存中的数据保存到关系型数据库、 文件系统、消息队列等提供持久化支持的设备中。 持久层
就是系统中专注于实现数据持久化的相对独立的层面。
持久层设计的目标包括:
-数据存储逻辑的分离,提供抽象化的数据访问接口。
-数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现。
-资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制)。
-数据抽象,提供更面向对象的数据操作。
持久层框架有:
-Hibernate
-MyBatis
-TopL ink
-Guzz
-jOOQ
-Spring Data -ActiveJDBC
3、 Hibernate 中SessionFactory 是线程安全的吗? Session是线程安全的吗(两个线程
能够共享同一个 Session吗)?
答:SessionFactory 对应Hibernate 的一个数据存储的概念,它是线程安全的,可以被多 个线程并发访问。Sessi onF actory 一般只会在启动的时候构建。对于应用程序,最好将
SessionFactory 通过单例模式进行封装以便于访问。 Session是一个轻量级非线程安全的
对象(线程间不能共享 session ),它表示与数据库进行交互的一个工作单元。 Session是
由SessionFactory 创建的,在任务完成之后它会被关闭。 Session是持久层服务对外提供
的主要接口。Session会延迟获取数据库连接(也就是在需要的时候才会获取)。为了避免 创建太多的session,可以使用ThreadLocal将session和当前线程绑定在一起, 这样可以
让同一个线程获得的总是同一个 session 。 Hibernate 3 中SessionFactory 的
getCurre ntSessio n() 方法就可以做到。
4、 Hibernate 中Session 的load和get方法的区别是什么?
答:主要有以下三项区别:
如果没有找到符合条件的记录, get方法返回null,load方法抛出异常。
get方法直接返回实体类对象,load方法返回实体类对象的代理。
在Hibernate 3 之前,get方法只在一级缓存中进行数据查找,如果没有找到对应的数
据则越过二级缓存,直接发出 SQL语句完成数据读取;load方法则可以从二级缓存中获取
数据;从Hibernate 3 开始,get方法不再是对二级缓存只写不读, 它也是可以访问二级缓 存的。
说明:对于
说明:对于load()方法Hibernate 认为该数据在数据库中一定存在可以放
心的使用代理来实现延迟加载,如果没有数据就抛出异常,而通过 get()方
法获取的数据可以不存在。
5、 Session 的 save() 、update() 、merge() 、lock() 、saveOrUpdate() 禾口 persist。 方
法分别是做什么的?有什么区别?
答:Hibernate 的对象有三种状态:瞬时态(transient )、持久态(persistent )和游离态
(detached ),如第135题中的图所示。瞬时态的实例可以通过调用 save()、persist()或
者saveOrUpdate()方法变成持久态;游离态的实例可以通过调用 update。、
saveOrUpdate() 、lock()或者 replicate()变成持久态。save()和 persist()将会引发 SQL 的 INSERT 语句,而 update()或 merge()会引发 UPDATE 语句。save()和 update()的区别在 于一个是将瞬时态对象变成持久态,一个是将游离态对象变为持久态。 merge()方法可以完
成save()和update()方法的功能,它的意图是将新的状态合并到已有的持久化对象上或创 建新的持久化对象。对于 persist()方法,按照官方文档的说明:① persist()方法把一个瞬
时态的实例持久化,但是并不保证标识符被立刻填入到持久化实例中, 标识符的
您可能关注的文档
- ERP系统实施规划解决方案.docx
- ERTU2000C_用户手册(硬件版本2)A1要点.docx
- EWI5000电吹管常用指法.docx
- Excel-使用技巧集锦——-163种使用技巧大全(超全).docx
- Excel中添加标签或文本框的操作方法.docx
- Excel完整教程—200种超全使用技巧.docx
- FFT的计算机实现.docx
- Fireye火检检测器要点.docx
- FIR数字滤波器设计与使用.docx
- FKQ系列地面防喷器控制装置使用手册要点.docx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 传媒法规与伦理教学课件(共22章)新闻伦理研究综述.pdf VIP
- 汽车行驶记录仪产品使用说明书.PDF VIP
- 2026年成都市美容医疗诊所医美项目安全规范运营可行性研究报告.docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
- (四年级奥数班讲义.doc VIP
- 单病种病案数据填报指导手册.doc
- 企业 IPO 筹备方案(最新版,附时间表 + 材料).docx VIP
- 深圳初三数学联考模拟试题.docx VIP
- 高考历史二轮总复习精品课件 第四板块 世界现代史 第十七讲 现代科技的发展与当今世界发展的趋势.ppt VIP
- 2024年菏泽职业学院单招数学考试模拟试题及答案解析.docx VIP
原创力文档

文档评论(0)