Hibernate基本知识概括

Hibernate基本知识概括

简介:
hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。

Hibernate思维导图

Hibernate思维导图

ORM(对象关系映射)

详细一点,是 面向对象编程中的 对象(Object)和关系数据库的 关系(Relation) 的一个映射(Mapping) 。没有O/R M之前,都是直接用SQL操作数据库,或者使用DAO之类的机制进行对象概念到关系数据库概念的转换。而现在不必管数据库怎么存储,只要知道要保存的也是一个对象(和开发的概念一致)就可以了。

ORM功能实现:

实现ORM功能的时候,主要的文件有:映射类(.java)、映射文件(.hbm.xml)以及数据库配置文件(.properties或.cfg.xml),
它们各自的作用如下。

⑴映射类:它的作用是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象。

⑵映射文件:它的作用是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系
以及表字段和类属性名称的对应关系等。

⑶数据库配置文件:它的作用是指定与数据库连接时需要的连接信息,比如连接哪中数据库、登录用户名、登录密码以及连接字符串等。

配置文件

2种方式:注解和 xml配置
注解:注解配置需要导入要用的jar包,或在pom.xml中配置相关依赖
xml配置:

<hibernate-mapping package=”com.wsw.struts.model”>
    <class name="Person" table="per">
       <id name="id" column="id">
            <generator class="native"/>   //字段自增
       </id>
       <property name="username" column="p_username"/>
       <property name="age" column="p_age"/>
    </class>
</hibernate-mapping>

映射关系

1:一对一
2:一对多
3:多对一
4:多对多

集合映射

1:单纯的集合属性,如像List、Set或数组等集合属性
2:Map结构的集合属性,每个属性值都有对应的Key映射

JPA接口

JPA和hibernate的关系
JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):
- JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现
- Hibernate 是实现:Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现
从功能上来说, JPA 是 Hibernate 功能的一个子集

操作接口

Persitence
EntityManager
EntityManagerFactory
Query
Transaction

基本注解

JPA 基本注解:@Entity, @Table, @Id, @GeneratedValue, @Column, @Basic,@Transient, @Temporal, 用 table 来生成主键详解

JPQL语句

select update delete

对象状态

new 创建态
Managed托管态
Datched游离态
removed删除态

Hibernate操作

操作接口:

configuration:负责配置并祁东hibernate,创建sessionFactory对象
Session:负责被持久化对象CRUD操作
SessionFactory:负责初始化hibernate,创建session对象
Transaction:负责事物相关的操作
Query和Criteria接口:负责执行各种数据库查询

hibernate工作原理:

1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的读取并解析映射信息
3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4.Session session = sf.openSession();//打开Sesssion
5.Transaction tx = session.beginTransaction();//创建并启动事务Transation
6.persistent operate操作数据,持久化操作
7.tx.commit();//提交事务
8.关闭Session
9.关闭SesstionFactory

为什么要用hibernate:

  1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
  2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
  3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
  4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

HQL语句

select
update
delete

对象状态

Transient瞬时态
Persistent 持久态
Datached 游离态、

缓存

一级缓存 session级别
二级缓存 sessionFactory级别

参考博客:
http://blog.csdn.net/liujiahan629629/article/details/21442607

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值