悠然哈哈哈

导航

hibernate入门

1、hibernate制胜

  1、回顾JDBC实现数据库访问的步骤

    1.1、通过Class forName注册驱动,通过DriverManager getConnection获得数据库连接。

    1.2、通过获得Connection对象生成的Statement对象。

    1.3、使用Statement对象对数据库进行增删改查的操作。

    1.4、关闭Connection对象和Statement

    1.5、在整个操作过程中,需要对SQLException进行捕获和处理

  2、什么是持久化?

    2.1、将程序中数据在瞬时状态和持久化状态间转换的机制。

  3、为什么需要持久化?

    3.1、持久化层

      3.1.1、jdbc就是一种持久化机制

      3.1.2、将程序数据直接保存成文本文件也是持久和机制的一种实现

      3.1.3、再分层结构中,DAO层(数据访问层)也被称为持久化

    3.2、持久化完成的操作

      3.2.1、将对象保存到关系型数据中

      3.2.2、将关系型数据库中的数据读取出来以对象的形式封装

  4、hibernate简介

    4.1、一个开发源代码的对象关系映射框架

    4.2、对JDBC进行了非常经量级的对象封装

    4.3、将javabean对象和数据库的表建立对应关系

 

  5、为什么要学习hibernate?

    5.1、hibernate是一个优秀的java持久化层解决方案

    5.2、是当今主流的对象一关系映射工具

    5.3、hibernate简化jdbc繁琐的编码

    5.4、hibernate将数据库连接信息都存放在配置文件中

2、hibernate入门

  2.1、使用hibernate操作数据库需要的七个步骤

    2.1.1、读取并解析配置文件

      (Configuration conf=newConfiguration().configure();)

    2.1.2、读取并解析映射信息,创建SessionFactory

      (SessionFactory sf=conf.buildSessionFactory();)

    2.1.3、打开Session

      (Session session=sf.openSession();)

    2.1.4、开始一个事物(增删改查操作可选)

      (Transaction tx=session.beginTransaction();)

    2.1.5、数据库操作

      (session.save(user);)

    2.1.6、提交事务

      (tx.commit();)

    2.1.7、关闭session

      (session.close();)

 

  2.2、hibernate中实体对象的三种状态

    2.2.1、瞬时状态

      刚用new语句创建,还没有被持久化,且不处于Session的缓存中

    2.2.2、持久化状态

      已经被持久化,且加入Session的缓存中

    2.2.3、游离状态

      已经被持久化,但不再处于Session的缓存中

  2.3、使用get和load加载数据的区别

    2.3.1、当使用Session的get方法的时候,如果加载的数据不存在,get方法会返回一个null对象, 但是如果使用的是load方法,要加载的数据不存在时,系统就会抛出异常

    2.3.2、load支持延迟加载,get不支持延迟加载。

  

3、本阶段总结

  hibernate是一个基于JDBC的持久化解决方案,是一个优秀的“对象一关系映射”框架

  使用hibernate前要做的三个准备

    添加需要的jar包

    配置hibernate配置文件

    创建实体类和映射文件

  使用hibernate完成持久化操作的七个步骤

    读取并解析配置文件

    读取并解析映射文件

    打开session

    开启事务

    执行持久化方法

    提交事务

    关闭session

  hibernate中所操作的实体对象的状态分为三种,分别是Transient(瞬时状态)、Persistent(持久状态)、Detached(游离状态)  

   JDBC的缺点:

    开发效率低、代码冗余、重复性工作多

 

posted on 2013-07-07 20:18  悠然886  阅读(174)  评论(0编辑  收藏  举报