Hibernate_学习笔记

简介: Hibernate_学习笔记

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对象状态切换

相关文章
|
6月前
|
Oracle Java 关系型数据库
[学习笔记] 在Eclipse中使用Hibernate,并创建第一个Demo工程,数据库为Oracle XE
[学习笔记] 在Eclipse中使用Hibernate,并创建第一个Demo工程,数据库为Oracle XE
|
7月前
|
Java 关系型数据库 数据库连接
Hibernate学习笔记(一)快速入门
Hibernate学习笔记(一)快速入门
|
存储 SQL Java
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
|
SQL 存储 缓存
hibernate学习笔记之一(下)
hibernate学习笔记之一(下)
hibernate学习笔记之一(下)
|
SQL XML 安全
hibernate学习笔记之一(上)
hibernate学习笔记之一(上)
hibernate学习笔记之一(上)
|
SQL JSON Java
SpringBoot 整合 JPA-Hibernate|学习笔记
快速学习 SpringBoot 整合 JPA-Hibernate
171 0
SpringBoot 整合 JPA-Hibernate|学习笔记
|
SQL Java 数据库连接
hibernate入门学习笔记
hibernate入门学习笔记
88 0
|
Java 数据库连接 开发工具
Hibernate 控制反转|学习笔记
快速学习 Hibernate 控制反转
|
缓存 Java 数据库连接
Hibernate Session 生命周期|学习笔记
快速学习 Hibernate Session 生命周期
191 0
|
Java 数据库连接 数据库
Hibernate学习笔记8,session管理,事务控制
Hibernate学习笔记8,session管理,事务控制 Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰。
1665 0