hibernate是什么?

 我来答
badkano
推荐于2018-04-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
  Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、
  Transaction、Query、Criteria和Configuration。这6个核心类和接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
  Session:
  Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
  SessionFactory:
  SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
  Transaction:
  Transaction 接口是一个可选的API,可以选择不使用这个接口,取而代之的是Hibernate 的设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA 中的UserTransaction、甚至可以是CORBA 事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移植。
  Query:
  Query接口让使用者方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
  Criteria:
  Criteria接口与Query接口非常类似,允许创建并执行面向对象的标准化查询。值得注意的是Criteria接口也是轻量级的,它不能在Session之外使用。
  Configuration:
  Configuration 类的作用是对Hibernate 进行配置,以及对它进行启动。在Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。虽然Configuration 类在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动hibernate 时所遇到的第一个对象。
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
匿名用户
2013-08-17
展开全部
Hibernate是一种ORM(Object Relation Mapping 对象关系映射)框架,是当前最流行的持久化的手段,由于当前的数据库几乎都是关系性的数据库,所以在进行数据库的CRUD操作时,就会涉及到多表联查,对于大型的应用这是一个相当麻烦的一个过程,在这种情况下,Hibernate等持久化框架,被人们开始重视,它是通过把SQL进行封装,然后通过关系映射来实现数据库的访问,其本质更符合面向对象的思想.他的映射策略说白了,就是数据库表格的PK和FK的体现,不过您说的"学生名,课程名,认课教师名"是表的字段,建立关系比较麻烦,我这么给你举例子吧,假如存在三张表stu_table,lession_table,teacher_table,一对一(1:1)比如说学生与学号之间就是一种1:1的关系;一对多(1:N)比如说一个学生可以选修一门(假设)课程,但同一门课程可以被多个同学选修多对多(N:N)比如说一个老师可以叫几门课程,而且每门课程可以有多个老师来教.另外,Hibernate不提倡使用多对多映射
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-17
展开全部
是J2EE的核心技术之一
即使不用写SQL语句也可以操作数据库
把数据库编程与WEB编程划分开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-17
展开全部
是ORM思想的一种实现 就是对象关系的印射
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式