Hibernate的个人简介

1.什么是hibernate?

首先,hibernate是数据持久层的一个轻量级的框架。数据持久层的框架有很多比如:iBATIS,my Batis… hibernate是一个开源orm(object relations model)框架,提供了查询获取数据的方法,用面向对向对象来操作数据库,节省处理数据的时间。

2.hibernate的优点

(1)使用简洁的hql语句(hibernate query language)。可以不使用传统的增删改sql语句例如(insert,delete,update等)。比如insert一个对象,传统做法 insert into 表名称 value(值1,值2,值3,…)现在的做法是:save(对象)

public static void main(String[] args) {
	 //1. 获取SessionFactory 
	SessionFactory sf = new Configuration().configure().buildSessionFactory();

	Session s = sf.openSession();//2. 通过SessionFactory 获取一个Session
	s.beginTransaction();//3. 在Session基础上开启一个事务

	Category c = new Category();
	c.setName("分类1");
	s.save(c);//通过调用Session的save方法把对象保存到数据库

	s.getTransaction().commit();//5. 提交事务
	s.close();//6. 关闭Session
	sf.close();//7. 关闭SessionFactory

   }
}

(2)使用or映射。对象到关系数据库之间的映射。是从对象的角度操作数据库,体现面向对象的思想,原来的方法:首先有表,然后映射到实体对象(实体类)。而现在的做法直接由对象映射到表。

<hibernate-mapping package="com.hy.pojo">
    <class name="Product" table="product_"><!-- 映射 Product类对应数据库中的product_表-->
        <id name="id" column="id"><!--表示属性id,映射表里的字段id 如果是连接oracle数据库,可以指定sequnce作为id自增长方式 -->
            <generator class="native"><!-- 意味着id的自增长方式采用数据库的本地方式 -->
            </generator>
        </id>
        <property name="name" />
        <property name="price" />
    </class>
     
</hibernate-mapping>

(3)没有浸入性,移植性比较好,什么叫没有浸入性?就是hibernate采用了pojo对象,所谓的pojo对象就是没有继承hibernate类或hibernate接口,这样的话就是一个普通的java类,所以移植性较好。
(4)支持透明持久化。透明是针对上层而言的。三层架构的理念是上层对下层的依赖,只依赖接口不依赖具体实现,而hibernate中的透明是指对业务逻辑层提供一个接口session,而其他的都封装隐藏。持久化是指把内存中的数据放到磁盘上的文件中。

3.hibernate的缺点

世界上没有一样事物是十全十美的,即使再优秀的hibernate也有弱点。比如:若是对大量数据的操作,则不适用hibernate。并且一个持久化对象不能映射到多张表。

4.hibernate中的5个接口

(1)Configuration接口:负责配置及启动hibernate,用来创建SessionFactory。
(2)SessionFactory接口:一个SessionFactory对另一数据源储存,简单的理解就是一个数据库对应一个SessionFactory。SessionFactory用来创建Session对象。并且SessionFactory是线程安全的,可以由多个线程访问sessionFactory共享。
(3)Session接口:这个接口是hibernate中常用的接口,主要用于对数据库操作(增删改查)。这个Session不是线程安全的,不能共享。
(4)Query接口:用于数据库查询对象。
(5)Transaction接口:hibernate事务接口。它封装了底层的事务操作,比如JTA(java transaction architecture)所有事务的操作,增删改查都写在事务中。

我现在也只理解到那么多,都是自己的理解,如果您有更多的理解欢迎留言!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值