Hibernate框架学习笔记——01

什么是框架?

简单来说:写程序,使用框架之后,帮我们实现一部分功能,使用框架好处,少写一部分代码实现功能

什么是Hibernate框架?

  • hibernate框架应用在javaee三层结构中 dao层框架
  • 在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂jdbc代码了,不需要写sql语句实现
  • hibernate开源1轻量级的框架
  • hibernate版本 – Hibernate5.x (现在通用5版本)

什么是ORM思想?

  • hibernate使用orm思想对数据库进行crud操作
  • 在web阶段学习 javabean,更正确的叫法 实体类
  • orm:object relational mapping,对象关系映射
  • orm文字描述:
    (1)让实体类和数据库表进行一一对应关系
    让实体类首先和数据库表对应
    让实体类属性 和 表里面字段对应
    (2)不需要直接操作数据库表,而操作表对应实体类对象

Hibernate入门

环境搭建

  1. 导入相关jar包

在这里插入图片描述
注意:因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他日志的jar包。还有链接数据库驱动jar包。
2. 创建实体类
使用hibernate时候,不需要自己手动创建表,hibernate帮把表创建
3. 配置实体类和数据库表一一对应关系(映射关系)

使用配置文件实现映射关系
(1)创建xml格式的配置文件
 1. 映射配置文件名称和位置没有固定要求
 2. 建议:在实体类所在包里面创建,实体类名称.hbm.xml
(2)配置是是xml格式,在配置文件中首先引入xml约束
 3. 学过约束dtd、schema,在hibernate里面引入的约束dtd约束
 4. <!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">3)配置映射关系
<hibernate-mapping>
	<!-- 1 配置类和表对应 
		class标签
		name属性:实体类全路径
		table属性:数据库表名称
	-->
	<!-- 2 配置实体类id和表id对应 
			hibernate要求实体类有一个属性唯一值
			hibernate要求表有字段作为唯一值
		-->
		<!-- id标签
			name属性:实体类里面id属性名称
			column属性:生成的表字段名称
		 -->
</hibernate-mapping>
  1. 创建hibernate的核心配置文件
1)核心配置文件格式xml,但是核心配置文件名称和位置固定的
 - 位置:必须src下面
 - 名称:必须hibernate.cfg.xml
(2)引入dtd约束
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载
第一部分: 配置数据库信息 必须的
第二部分: 配置hibernate信息 可选的
第三部分: 把映射文件放到核心配置文件中

Hibernate配置文件详解

Hibernate映射配置文件

  • 映射配置文件名称和位置没有固定要求
  • 映射配置文件中,标签name属性值写实体类相关内容
    (1)class标签name属性值实体类全路径
    (2)id标签和property标签name属性值 实体类属性名称
  • id标签和property标签,column属性可以省略的
    不写值和name属性值一样的
  • property标签type属性,设置生成表字段的类型,自动对应类型

Hibernate核心配置文件

  • 核心配置文件名称和位置固定的
    (1)位置:src下面
    (2)名称:hibernate.cfg.xml

  • 配置三部分要求
    (1)数据库部分必须的
    (2)hibernate部分可选的
    (3)映射文件必须的

实现添加操作

@Test
	public void testAdd() {
//		第一步 加载hibernate核心配置文件
		// 到src下面找到名称是hibernate.cfg.xml
		//在hibernate里面封装对象
		Configuration cfg = new Configuration();
		cfg.configure();
		
//		第二步 创建SessionFactory对象
		//读取hibernate核心配置文件内容,创建sessionFactory
		//在过程中,根据映射关系,在配置数据库里面把表创建
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		
//		第三步 使用SessionFactory创建session对象
		// 类似于连接
		Session session = sessionFactory.openSession();
		
//		第四步 开启事务
		Transaction tx = session.beginTransaction();

//		第五步 写具体逻辑 crud操作
		//添加功能
		User user = new User();
		user.setUsername("小王");
		user.setPassword("250");
		user.setAddress("日本");
		//调用session的方法实现添加
		session.save(user);
		
//		第六步 提交事务
		tx.commit();

//		第七步 关闭资源
		session.close();
		sessionFactory.close();
	}

看结果:

  • 是否生成表
  • 看表是否有记录

Hibernate核心API

1.Configuration
到src下面找到名称hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)
2.SessionFactory

  • 使用configuration对象创建sessionFactory对象
    创建sessionfactory过程中做事情:
    根据核心配置文件中,有数据库配置,有映射文件部分,到数据库里面根 据映射关系把表创建
<property name="hibernate.hbm2dll.auto">upadte</property>
  • 创建sessionFactory过程中,这个过程特别耗资源的
    在hibernate操作中,建议一个项目一般创建一个sessionFactory对象

3.Session

  • session类似于jdbc中connection
  • 调用session里面不同的方法实现crud操作
    (1)添加 save方法
    (2)修改 update方法
    (3)删除 delete方法
    (4)根据id查询 get方法
  • session对象单线程对象 session对象不能共用,只能自己使用

4 Transaction

  • 事务对象
    开启事务:Transaction tx = session.beginTransaction();

  • 事务提交和回滚方法:commit() | rollback()

  • 事务概念 事务四个特性
    原子性、一致性、隔离性、持久性


  1. 源代码开放且免费 ↩︎

原创文章 19 获赞 8 访问量 871

猜你喜欢

转载自blog.csdn.net/qq_41519304/article/details/105405984