Hibernate学习笔记——第一天

1.web内容回顾

  • JavaEE三层结构
  1. web层:struts2框架
  2. service层:spring框架
  3. dao层:hibernate框架,对数据库进行CRUD操作
  • MVC思想

2.Hibernate概述

在写程序时,框架可以帮我们实现一部分功能,可以少写一部分代码。

  • 什么是Hibernate框架
  1. 应用在javaee三层结构中的dao层框架
  2. 在dao层里面做数据库的crud操作,底层代码就是jdbc,对jdbc进行了封装。不需要写复杂的jdbc代码和sql语句
  3. 开源轻量级(不依赖其他东西)
  • 什么是orm思想
  1. object relational mapping,对象关系映射
  2. 实体类和数据表一一对应,实体类属性和数据表字段一一映射
  3. 不需要操作数据库,而操作表对应的实体类对象

3.Hibernate入门

  • 搭建Hibernate环境
  1. 导入jar包
  2. 创建实体类
  3. 配置实体类和数据表的一一对应关系,通过创建User.hbm.xml配置文件,使用dtd约束,文件位置不固定,建议放在实体类的包下面

  4. 创建hibernate核心配置文件,文件名称和位置固定,hibernate.cfg.xml,放在src下面。hibernate在加载过程中,只会加载核心配置文件,其他配置文件不会加载。①配置数据库信息 ②配置hibernate信息 ③把映射文件放到核心配置文件中 

 注意:如果数据库版本为MySQL8,应将上述两处修改

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_day01?useSSL=false&amp;serverTimezone=UTC</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
  • 实现添加操作
  1. 加载hibernate核心配置文件
  2. 创建SessionFactory对象
  3. 使用SessionFactory创建Session对象
  4. 开启事务
  5. 写具体逻辑crud操作
  6. 提交事务
  7. 关闭资源
public class HibernateDemo {
	
	@Test
	public void testAdd(){
		//1.加载hibernate核心配置文件
		//到src下面找到hibernate.cfg.xml
		Configuration cfg = new Configuration();
		cfg.configure();
		//2.创建SessionFactory对象
		//根据映射关系,创建表
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		//3.使用SessionFactory创建Session对象
		Session session = sessionFactory.openSession();
		//4.开启事务
		Transaction transaction = session.beginTransaction();
		//5.写具体逻辑crud操作
		User user = new User();
		user.setUsername("东尼大木");
		user.setPassword("250");
		user.setAddress("Tokyo");
		//调用session方法实现
		session.save(user);
		//6.提交事务
		transaction.commit();
		//7.关闭资源
		session.close();
		sessionFactory.close();
	}
}

4.注意事项

1.一般情况下,一个项目中只需要一个SessionFactory,只有当应用中存在多个数据源时,才为每个数据源创建一个SessionFactory实例。因此,在实际项目中,通常会抽取出一个HibernateUtils工具类,用来提供Session对象。

public class HibernateUtils {
	private static final Configuration configuration;
	private static final SessionFactory sessionFactory;
	static{
		configuration = new Configuration().configure();
		sessionFactory = configuration.buildSessionFactory();
	}
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
}

2.Session类似于jdbc中的Connection,调用不同方法实现crud操作。

(1)添加save()方法         

(2)修改update()方法            

(3)删除delete()方法                  

(4)根据id查询get()方法        

session对象为单线程对象,不能共用

3.transaction事务,提交方法commit(),回滚方法rollback()

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

猜你喜欢

转载自blog.csdn.net/weufengwangshi_/article/details/86487874