浅析Hibernate基础知识

开发 后端
这里介绍Hibernate基础知识,Hibernate比JDBC简单使用,不需要输入很多的连接数据库代码。提取数据库数据也不用循环提取。

Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate基础知识,包括介绍主键Id得到一个持久对象,Hibernate中有两个方法等方面。

今天重新学习Hibernate,虽然一年多以前跟老师学过Hibernate基础知识,但现在重新学习还是有很多收获的,发现自己的知识知道的都是些皮毛,用了很久的东西,知道怎么操作怎么用,但要说说它的所以然,摇摇头,呵呵

Hibernate是JDBC的升级版,专用连接数据库。
Hibernate比JDBC简单使用,不需要输入很多的连接数据库代码。提取数据库数据也不用循环提取。使用时的方法为:

1.新建一个Java普通项目

2.创建user library 加入三个地方的jar包:两个Hibernate 一个MYSQL驱动

3.创建Hibernate配置文件,Hibernate.cfg.xml

4.建立实体类user

5.在Hibernate文件中寻找eg至底部找出user.hbm.xml映射文件,copy到映射文件所在文件中

6.将映射文件user.hbm.xml部分加入到Hibernate.cfg.xml中

7.创建数据库,再利用Hibernate将实体映射导入到数据库中

根据主键Id得到一个持久对象,Hibernate中有两个方法,一个get,一个load,他们两个参数相同,都返回一个Object

它们的区别:执行get方法即时生成查询sql去查询数据库得到相应的pojo,如果数据库中没有相应记录,则返回null执行load方法不会即时产生 sql语句,而是在用到返回的对象时采取查询数据库,也就是load方法有默认的延迟加载,在执行load方法后返回的不是一个pojo对象,是pojo 对象的一个代理(据说Hibernate是用代理的方式实现延迟加载的,这块还迷糊),如果数据库中没有相应记录,load方法会抛出异常ObjectNotFoundException看了一下我们用MyEclipse Hibernate工具通过数据库生成的DAO类,它的findById方法是用的session.get()方法,这是即时获得pojo对象,如果是load方法,在执行完load后如果关闭了session,那在接下来用到这个pojo对象时恐怕会报session已关闭的错误。

还有就是这两个方法的第二个参数id,它必须是实现了java.io.Serializable接口,也就是可序列化的。以上介绍Hibernate基础知识。

【编辑推荐】

  1. Hibernate Util简单讨论
  2. 详解优化Hibernate性能经验
  3. 概述Hibernate dbcp连接池使用方法
  4. 浅析Hibernate.cfg.xml配置
  5. Hibernate Shard基础分析
责任编辑:佚名 来源: 博客园
相关推荐

2011-03-07 09:12:26

2009-08-21 17:19:36

C#网络编程入门

2009-08-19 16:19:01

C#操作Access数

2015-06-01 13:35:43

数据中心DCIM

2010-07-16 10:53:30

Perl基础

2009-04-17 14:22:40

XPathXML基础

2014-08-20 10:15:45

2023-07-04 07:31:06

MapReduce数据处理编程模型

2009-04-10 09:35:00

WCDMA基础无线网络

2011-03-29 14:11:20

Cacti基础知识

2011-09-16 10:13:02

Emacs

2010-07-16 11:22:31

Perl

2021-11-05 15:31:01

UbuntuLinux

2010-07-07 17:17:23

协议组

2009-08-13 16:13:03

C#基础知识

2009-09-21 15:11:54

虚拟化基础知识

2010-08-24 15:39:59

2009-09-14 14:49:12

LINQ查询基础知识

2014-06-17 09:55:24

机器学习

2011-05-27 16:12:18

SEO
点赞
收藏

51CTO技术栈公众号