1.Hibernate框架有什么作用
Hibernate是一个数据库访问(持久层)框架,简化了对数据库的增删改查操作。Hibernate框架本质是对JDBC技术的封装。
---------------------------------------
EJB:企业级JavaBean,需要EJB容器才能使用。
EntityBean类型的EJB组件,可以与数据库记录进行映射。
Hibernate已被JBOSS收购,用它实现EntityBean组件.
------------------------------------------
Hibernate框架的优点如下:
a.简化了复杂的SQL语句,由Hibernate自动生成
b.Hibernate框架支持当前主流的各种数据库类型,
当进行数据库移植时,可以不用修改访问代码。
c.可以将数据库表的记录和实体对象映射。
2.Hibernate框架实现原理
Hibernate框架是基于ORM思想实现的。
ORM:Object Relation Mapping 对象关系映射。
指的是将应用程序中的对象和关系数据表中的记录进行映射。之后在应用程序只要对这些对象进行操作,就可以实现对数据库的操作。在插入时,可以将对象信息映射到数据表的记录;在查询时,可以将数据表记录映射成对象。
ORM工具:Hibernate,iBATIS,JPA等技术。
*3.Hibernate框架使用
1)Hibernate框架结构
a.实体类(n个)
用于封装数据库记录的对象
b.hibernate.cfg.xml (hibernate.properties)(1个)
主配置文件,定义了数据库连接参数和数据库类型等
c.hbm.xml映射描述文件(n个)
定义数据表和实体类之间的映射,属性和字段的映射 信息。
2)Hibernate使用步骤
a.先引入Hibernate和驱动开发包
b.添加Hibernate主配置
c.添加映射的实体类和映射描述文件
d.利用Hibernate API进行数据库操作
Cofiguration配置对象,用于加载主配置文件
SessionFactory对象,用于创建Session对象的工厂
Session对象,用于执行增删改查操作。
Query对象,用于执行Hibernate查询语句(HQL)。
Transaction对象,用于执行事务处理。
3)使用注意事项
a.事务管理
在进行增删改操作时,必须得加上事务管理。原因是
因为Hibernate不会自动提交,需要显示的commit();
b.Session基本使用
添加操作:session.save(user);
删除操作:session.delete(user);
更新操作: session.update(user);
按主键查询: session.load(实体类型,主键值);
session.get(实体类型,主键值);
获取事务: session.beginTransaction();
执行HQL:
Query query = session.createQuery(hql);
//执行hql返回List
List<User> list = query.list();
//执行hql返回Iterator
Iterator<User> it = query.iterator();
public class HibernateUtil1 {
private static SessionFactory sf;
#####################################################################
static{
//加载Hibernate主配置及映射信息
Configuration conf = new Configuration();
//默认加载src目录下
conf.configure("/hibernate.cfg.xml");
//获取SessionFactory
sf = conf.buildSessionFactory();
}
public static Session getSession(){
// Session session = sf.openSession();
//获取当前线程使用的Session,如果没有再创建一个新的
Session session = sf.getCurrentSession();
return session;
}
}
- 大小: 21.6 KB
分享到:
相关推荐
《黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02》 本文将深入探讨2016年黑马程序员发布的Hibernate框架开发课程的第二天内容。Hibernate,一个强大的Java持久化框架,简化了数据库操作,为开发者提供了...
6.1 案例分析:结合黑马程序员的day1至day4的讲义和笔记,深入理解在实际项目中如何应用Hibernate,解决具体问题。 总结,Hibernate作为强大的ORM框架,为Java开发者提供了便利,通过理解并熟练掌握其核心概念、...
【标题】"传智博客Hibernate框架2016版笔记资料day01~02" 涵盖了对Hibernate框架的基础至进阶知识的学习,是针对2016年版本的一份详实教程。Hibernate作为Java领域内的一款强大、流行的持久化框架,它简化了数据库...
1. **灵活性**:MyBatis 需要手动编写SQL语句,虽然增加了开发工作量,但同时也提高了灵活性,可以根据需求调整SQL,实现更高效的查询。 2. **半自动化**:MyBatis 不像Hibernate那样提供全自动化的数据映射,开发者...
在Day01的学习中,通常会介绍Struts2的基本概念和历史背景,包括其与前一代Struts1的区别。Struts2的核心组件如Action、Result、Interceptor(拦截器)等也会被详细讲解。此外,还会介绍如何搭建Struts2的开发环境,...
《Hibernate框架开发详解——以黑马程序员2016版讲义和笔记为引导》 Hibernate,作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更专注于业务逻辑而不是繁琐的数据访问...
《黑马程序员Hibernate框架开发2016版视频day1-day4源码笔记》是一份针对初学者和...每个天的资料(day01至day04天资料.zip)都包含了对应阶段的代码示例,便于读者对照学习,动手实操,从而更好地掌握Hibernate框架。
该资源包含了四天的学习内容,分别是day01、day02、day03和day04,涵盖了从基础到高级的多个主题。以下是基于这些笔记的Hibernate框架相关知识点的详细解析: 1. **Hibernate概述**:Hibernate是一个开源的对象关系...
- 主流框架:如Struts、Spring、Hibernate(SSH),以及Ajax,掌握其工作原理和应用。 - UML建模:理解统一建模语言,用于系统设计。 - 设计模式:掌握常见的设计模式,如单例、工厂、观察者等,提升代码质量和可...
1. **java_hibernate_day01.pdf** - 这部分主要介绍了Hibernate的基本概念,包括ORM的优势、Hibernate框架的架构以及安装配置。此外,还涉及了Hibernate的核心API,如SessionFactory、Session、Transaction等,这些...
【标题】"传智博客Hibernate框架2016版笔记资料day03~04" 涵盖了Hibernate框架的深入学习内容,这是一份针对2016年版本的教程,旨在帮助开发者理解并掌握这个强大的Java持久化框架。在Hibernate中,数据库操作被封装...
**正文** 在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下...通过分析`hibernate_day02`的源码,我们可以深入理解Hibernate的这些关键概念,从而更好地掌握ORM技术,提升我们的Java开发能力。
【标题】:“Hibernate-day01”指的是一个关于Hibernate框架的基础学习教程,可能是一个课程或研讨会的第一天内容。Hibernate是Java开发中的一个对象关系映射(ORM)工具,它简化了数据库与Java对象之间的交互。 ...
在实际项目中,了解如何使用Spring进行服务的开发、测试和部署,以及如何与其他技术栈(如MyBatis、Hibernate、RESTful API等)配合,是提高开发效率和应用质量的关键。因此,深入学习和理解Spring框架的各个方面...
《Hibernate学习笔记详解》 Hibernate,作为Java领域中的一款强大持久化框架,...通过阅读《hibernate_day01.txt》至《hibernate_day06.txt》的学习笔记,你可以逐步深入到Hibernate的每一个细节,成为ORM领域的专家。
6. **实例分析**:可能包含多个日志记录(day01至day03)的项目实践,逐步深入理解Struts2和Hibernate的使用。 通过这些文档,你可以系统地学习到Struts2和Hibernate的基本概念、配置、使用方法以及在实际项目中的...
在深入探讨Hibernate学习笔记第三天的源码之前,先让我们简单了解一下Hibernate。Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种方便的方式来管理数据库操作。通过Hibernate,开发人员...
通过本教程的逐日学习,包括`day01`至`day07`的笔记内容,以及可能包含代码示例的`day03.txt`、`day06.txt`、`day07.txt`等文件,读者将逐步熟悉并掌握这些知识点。`res_Hibernate_lib`可能包含用于实验的Hibernate...