hibernate的相关问题

hibernate:是一种典型的ORM框架,是数据库访问中间件。

ORM:对象关系映射,即把数据库中的字段和实体类对象的属性进行关联(把对数据库的操作转换成对对象的操作)。

hibernate和jdbc的联系

1、hibernate是一个开源的、采用面向对象的思想实现ORM映射框架,它对jdbc进行了一层封装,对于数据库的连接、关闭、数据的持久化(增删改查)、事务的管理都进行了封装,使得程序开发的时候可以用面向对象的思想来操作数据库。

2、hibernate可以用于jdbc应用的任何场合。优点是,使用面向对象的思想操作数据库;对jdbc的封装,使得开发中不需要写大量的sql语句,大大提高了开发效率;采用数据库方言等方式使得数据库移植十分方便,也使得在开发中不需要考虑数据之间的差异;提供缓存机制,提高查询效率等。

3、缺点是,hibernate并不支持批量操作。对jdbc的封装失去了对sql的控制,而如果执行本地sql则失去了hibernate的可移植性的优势。消耗内存较大。

hibernate:使用hql语句,速度不如jdbc,操作的对象不同,持久化对象

jdbc:sql语句,速度快,数据

工作流程:读取和解析配置文件,读取和创建sessionfactory,通过sessionfactory创建session,开启事务,持久化操作,事务提交,关闭session,关闭sessionfactory。

时间: 2024-11-03 05:24:09

hibernate的相关问题的相关文章

Hibernate fetch相关

fetch=FetchType.LAZY 时,spring boot jackson 返回数据时会出错. 可配置使用Hibernate4Module 帮助解决: @Configurationpublic class JacksonConfig extends WebMvcConfigurerAdapter {    @Override    public void configureMessageConverters(List<HttpMessageConverter<?>> co

hibernate 的相关记录

清理 session 缓存 1. flush:使数据表中的记录和session缓存中的对象的状态保持一致,为了保存一致,则可能会发送相应的SQL 001. 在 Transaction 的 commit() 方法中:先调用 session 的 flush 方法,再提交事务 002. flash 方法可能会发送 SQL 语句,但是不会提交事务 003. 注意: 在未提交事务或显示调用 session.flush() 方法,也有可能会进行 flush 操作: 1. 执行 HQL 或 QBC 查询,会先

SSH(五)spring整合hibernate

一.创建hibernate实体映射文件. 在实体所在包创建映射文件product.hbm.xml,引入hibernate的映射约束.(该约束位于hibernate3.jar里面hibernate-mapping-3.0.dtd,可cope使用)如下图: product.hbm.xml: <?xml version="1.0" encoding="UTF-8"?> <!-- hibernate约束头信息:hibernate3.jar→org,hibe

eclipse下 hibernate逆向数据库操作示例!!

做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法保证两边映射一致.因为两边都是自己设计的,那么就需要人为保证映射关

eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)

eclipse从数据库逆向生成Hibernate实体类 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法

(原创)hibernate 一对多建表实例详解 附上各个注释的含义

这个是hibernate的一对多建表实例:一的一端是部门(Department),对的一端是员工(Employee),下面贴上成员源代码:其中@mappedBy是加在@OneToMany一端,并且它的name属性=多的那一端(N端)属性是一的那一端的属性名,mappedBy是定义在Department类中,即Department类不负责维护级联关系.即维护者是Employee类 Department类: package com.javabean; import java.io.Serializa

【JavaEE】Springmvc+Spring+Hibernate搭建方法及example

前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码结构. Hibernate和前面两个比就比较复杂了,Hibernate是一个orm的框架,也就是负责面向对象中的对象(Object)和关系型数据库这个关系(Relation)之间的映射(Mapping).因为关系型数据库的思维方式,和编程的时候对于对象的理解是有偏差的,所以也有一些面向对象的数据库,但是随着这些orm框架的完善,面向对象的数据库就销声匿迹了. 当然,我这篇文章

【SSH系列】-- hibernate基本原理&amp;&amp;入门demo

    什么是hibernate?      hibernate在英文中是冬眠的意思,当冬季来临,世界万物开始准备冬眠,但是程序猿这种动物好像不冬眠,因为需求变了,要改bug,冬眠,对于对象来说就是持久化.什么叫做持久化呢?持久化,就是把数据(如内存中的对象)保存到可永久保存的存储设备中,比如磁盘,持久化的主要应用就是将内存中的对象存储在数据库中,或者存储在磁盘文件中.xml文件中等等.持久化是将程序数据在持久状态和瞬时状态间转换的机制.JDBC就是一种持久化机制,文件IO也是一种持久化机制. 

使用MyEclipse可视化开发Hibernate实例

2.7  使用MyEclipse可视化开发Hibernate实例 2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中. 这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率.操作的数据库表还是guestbook表,所使用MyEclipse的版本为7.0,不同的MyEclipse版本之间对于开发Hibernate应用差异不大. 在7.0版本中