Hibernate_学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014388408/article/details/50897079
1.Hibernate框架的作用和优点
  Hibernate主要负责对数据库进行访问操作
  Hibernate框架是对JDBC技术进行了封装。
  a.使用JDBC进行数据库操作具有以下缺点:
   --需要编写大量复杂的SQL语句
   --需要设置大量的?参数值
   --需要将ResultSet记录转换成POJO对象
   --数据库变更某些特殊功能需要改变SQL,简称移植性差。例如分页查询、主键生成方法、数据库函数等
  b.Hibernate解决上述JDBC的不足
   --自动生成SQL语句
   --自动设置?参数值
   --自动将ResultSet记录映射成POJO对象
   --采用一致的方法对数据库操作。例如分页查询和主键生成控制。移植性比较好。
   
save(admin);//insert语句
update(admin);//update语句
Admin admin =(Admin)load();//findById语句

2.Hibernate框架设计原理(思想)
  Hibernate是采用ORM思想对JDBC进行封装的设计。
  ORM:Object Relation Mapping, 对象关系映射。指的是解决Java对象和关系数据库数据之间的映射问题。
  Hibernate框架是ORM的一种实现,解决了对象和数据库数据映射问题。在数据库添加或更新时,可以将一个对象自动写入或更新数据表;查询时,可以将记录自动封装成对象返回。这些操作在中间执行时所涉及的一些细节开发者不用参与和关注。

3.Hibernate框架体系结构
  Hibernate主要由以下几部分构成
  a.hibernate.cfg.xml(1个)
    指的是hibernate框架的主配置文件。可以配置数据库连接参数、hibernate框架参数等。
  
  b.POJO实体类(n个)
    指的是与数据库对应的实体类,用于封装数据库记录的对象类型。

  c.hbm.xml映射描述文件(n个)
    指定了实体类和数据表的对应关系,类中属性和数据表字段之间对应关系。

  d.Hibenate底层的API(jar包)
   主要是对hbm.xml解析,根据写出的内容,动态生成SQL语句,自动将属性和字段映射。

4.Hibernate框架常用API
  a.Configuration
   负责加载hibernate.cfg.xml主配置信息,同时也可以加载hbm.xml信息。
  b.SessionFactory
   负责创建Session对象,对JDBC的connection对象的封装。
  c.Session
   负责执行增删改操作.提供了save,update,delete等方法。
  d.Transaction
   负责事务控制。默认情况下,Hibernate不会自动提交,因此需要事务控制才能对数据库更新。
  e.Query
   负责执行特殊查询。  

5.Hibernate框架基本应用
  1)引入hibernate开发包、数据库驱动包
  2)引入hibernate主配置文件hibernate.cfg.xml
  3)添加实体类Cost
  4)添加Cost.hbm.xml映射描述

  5)根据Hibernate提供的常用API执行增删改查操作
  //根据Class类型的主键值查询
  session.load(Class,主键值)
  session.get(Class,主键值)
  //根据Object对象的主键值删除
  session.delete(Object);
  //将Object对象更新到数据库
  session.update(Object);
  //将Object对象插入到数据库
  session.save(Object);
6.Hibernate映射类型
  在hbm.xml文件中,定义属性和字段映射时,使用了type属性,该属性用于指定映射类型,负责属性值和字段值之间的相互转化。
  在Hibernate框架中type属性允许使用两种格式:一种是Java类型,另一种是Hibernate类型(推荐)。
  Hibernate映射类型如下:
  整数映射:byte,short,integer,long
  浮点数:float,double
  字符串: string
  日期:date (年月日)
  时间: time (小时分钟秒)
  日期+时间: timestamp
  布尔类型:yes_no,true_false
 (可以完成一个布尔属性和字符之间的转换)
===========================
Java对象(sql.Date属性) <--date--> 
  YYYY-MM-DD
Java对象(util.Date属性) <--time--> 
  HH:MM:SS
Java对象(TimeStamp属性) <--timestamp-->    YYYY-MM-DD HH:MM:SS
Java对象(boolean属性) <--yes_no--> 
  Y|N
Java对象(boolean属性) <--true_false-->     T|F

7,Hibernate对象状态切换


  













猜你喜欢

转载自blog.csdn.net/u014388408/article/details/50897079
今日推荐