1 Hibernate是什么

本文深入探讨Hibernate框架的基础概念、优势及应用场景,并详细介绍其配置方法、常见错误分析与解决策略,为初学者提供全面的学习指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate课堂笔记

1Hibernate是什么

Hibernate是一个数据库的操作框架

1.1Jdbc的缺点

ljdbc的效率比较低

每一次请求,打开连接、发送sql语句,在数据库中解析sql语句等需要消耗大量的资源。

重复性代码特别多

每一次都需要关闭connection,statement,rs

Jdbc没有做到面向对象编程

没有做到数据缓存

现在世界上数据缓存做的很不错的框架(hibernate,oscache,ehcache)

Oscacheehcache都有页面缓存

*就是把页面上的数据缓存到本地磁盘上

*当应用程序再次访问的时候,直接从磁盘上读取数据就

可以了

*页面缓存不适合做更新特别频繁的数据

1.2Jdbc的优点

是最底层的操作数据库的框架,所以在java的层面上说速度最快

Jdbc做到了connectionpool

1.3Hibernate优点

l面向对象编程

lHibernate的底层也是由jdbc实现的

lHibernate的数据缓存做的相当棒

lHibernate做到了connectionpool

1.4Hibernate缺点

Hibernate不会让程序员干涉sql语句的生成,sql语句是hibernate内部操作jdbc生成的,所以在一个项目中,如果对sql的优化要求比较高,这个时候,不适合用hibernate

如果一张表的数据量特别大(千万级别以上),也不适合用hibernate

2Hibernate的学习内容

l学习hibernatecrud操作

l持久化对象的状态

l一对多和多对多(重点)

l数据缓存(一级缓存、二级缓存、查询缓存)(重点)数据缓存的特点

lHql语句

3hibernatecrud操作

3.1类与表的映射关系

3.2Hibernate配置文件的加载方式

3.2.1方式一

注意:

1、配置文件的名称必须是hibernate.cfg.xml

2、把hibernate.cfg.xml文件必须放在classpath

3.2.2方式二

注意:

1、利用该方法配置文件的名称可以随意写

2、路径可以随意放

3、Resource代表路径名称+文件名称

注意:hibernate的事务默认不是自动提交的

3.3crud操作注意事项

3.3.1session.get方法

1、要使用session.get方法,那么相对应的持久化类中必须保证有一个无参的构造函数

2、该方法的第二个参数与持久化类中的主键的类型要保持一致。

3、Session.get方法的第二个参数的形参:Serializable.因为只有这样才能接受所有的数据库的主键的类型

3.3.2session.update

参数可以是session.get方法得到的对象,也可以是新创建的对象,但是cid的值必须和数据库的值相对应。

4Hibernate流程

5Hibernate错误分析

5.1错误一

分析:

l在配置文件中加载该文件,但是路径写错了,找不到

l该文件根本没有加载到配置文件中

5.2错误二

分析:

当生成sql语句的时候,利用get方法获取值,这个时候,需要映射文件中的name属性拼接成get方法,然后利用java的反射机制赋值,拼接的时候出错了,所以属性找不到。

5.3错误三

分析:说明持久化没有找到,持久化类没有找到并不一定意味着该类不存在,有可能映射文件路径写错了

以上两个错误结合一起,就是总结出:

在映射文件中,class元素的name属性的值写错了

5.4错误四

hibernate的配置文件中,映射文件的路径写错了

5.5错误五

分析:

1、有可能在映射文件中,class元素的name属性的值写错了

2、在客户端session.save进行操作的时候,因为操作的是持久化对象,所以该对象所在的类必须是映射文件中class元素的name属性,如果不一致,也会报这样的错误

5.6错误六

分析:

Session.get方法两个参数,第二个参数的类型必须与持久化类中的主键的类型保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值