JAVA菜鸟 Hibernate学习小结
来源:互联网 发布:js访问全局变量 编辑:程序博客网 时间:2024/05/20 08:01
作为一个JAVA的初学者,在老师的带领下刚刚学习完Hibernate,在这里给大家分享一些我对Hibernate的一些理解和体会
首先我们大家都知道Hibernate 是一个优秀的Java 持久化层解决方案,是当今主流的对象—关系映射(ORM)工具。学习Hibernate,我们应该首先了解为什么会出现Hibernate。通过前面对JDBC的学习,大家应该很清楚,JDBC无法直接面向对象,直接使用JDBC操作数据库的步骤很繁琐,开发效率低。在这种前提下,Hibernate应运而生,很快受到了广大程序员的亲睐,Hibernate也得到了快速的发展。
学习Hibernate,首先要学会搭建环境,第一步:创建项目并导入jar包(具体步骤这里不做详细说明,不会的同学可以到网上搜索相应的教程),第二步:配置文件,创建一个文件hibernate.cfg.xml, 然后从源码包中复制代码到hibernate.cfg.xml中,然后将创建好的文件放到src下(最好放到src的util包下)。这样Hibernate的环境基本就搭建好了。
在Hibernate的学习中,老师重点讲解了Hibernate的三种状态(瞬时态,持久态,游离态)以及三种状态之间的转换。new产生的对象时瞬时态,然后通过save或saveOrUpdate方法转换为持久态,通过delete方法可以将对象变回瞬时态。另外我们需要注意的是,session关闭之后,原有的持久态就会变成游离态,游离态通过系列方法可重新回到持久态,并在事物提交的时候和数据库同步(注:session的get load方法可直接获得一个持久态对象)。持久态和游离态的共同点在于,都有数据表的一行与之对应,不同的是,持久态在session范围内,而游离态不在session范围内。
Hibernate 的增、删、改、查:
增——>session.save(type);
删——>session.delete(type);
改——>session.update(type);
查——>session.get(Type.class,id);
Hibernate的关联映射
一对多和多对一关联是现在用的比较较多的。例如:图书馆中,一个类型的书籍可以包括很多不同的图书,这就是典型的一对多关系。(由于关联是有方向的,一对多和多对一的单向关联是不同的,而双向的时候就一样)。
多对多关联:图书馆中,书和学生,一本书可以被多个同学借阅,一个学生也可以借阅多本图书。
Hibernate 查询操作
Hibernate支持两种主要的查询方式HQL(Hibernate Query Languge,Hibernate 查询语言)查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念。HQL 是应用较为广泛的方式,Criteria 查询又称为“对象查询”,它用面向对象的方式将构造查询的过程做了封装。
最后,通过Hibernate这一框架的封装,将开发人员和数据库完全的进行了隔离,几乎所有的操作都可以由Hibernate完成。
以前我们没有用到Hibernate类似的这些框架时,我们对数据库都需要做那些操作。1、 建数据库2、 建数据库表及表之间的关系3、 对数据进行增删改查的操作
有了Hibernate之后我们都要做那些操作:1、 建立数据库2、 写实体类(没有Hibernate之前也需要自己写)3、 写对象关系映射配置文件(Mapping)
通过回忆,能想到的暂时只有这些,如果大家还有什么疑问,可以给我留言,我会尽快给大家回复。。。。。
- JAVA菜鸟 Hibernate学习小结
- CSS菜鸟学习小结
- java菜鸟编程小结
- 菜鸟java方法小结
- 菜鸟学Java学习笔记小结 2017.08.17
- Java小菜鸟-第一章小结
- Hibernate 的学习小结
- Hibernate 学习小结
- hibernate 深入学习 小结
- Hibernate 学习小结
- Hibernate 学习小结
- Hibernate学习小结
- hibernate学习小结
- Hibernate学习小结
- hibernate学习小结
- Hibernate学习小结
- JAVA菜鸟学习
- 菜鸟Java 学习笔记
- Hibernate 学习总结
- SQL Server存储结构 一个字节造成的巨大性能差异
- mysql中数据类型
- hdu1671之字典树
- CoreText --- 基本用法
- JAVA菜鸟 Hibernate学习小结
- 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.cpp --模型准备
- webservice(自己写的webservice)
- 东软实训(Android)
- CoreText --- 段落样子CTParagraphStyle
- 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.cpp -- 训练
- hdu1495
- CoreText --- 行 CTLineRef
- VC6.0常用控件的操作