hibernate框架使用详解一

hibernate框架使用详解一

  • 一、hibernate的介绍
  • 二、hibernate的使用
    • 2.1 hibernate框架的搭建
      • 2.1.1 导包
      • 2.1.2创建数据库表、实体对象
      • 2.1.3创建orm元数据(对象与表的映射配置文件)
      • 2.1.4 书写主配置文件
    • 2.2 hibernate框架的使用
      • 2.2.1创建Configuration对象
      • 2.2.2创建SessionFactory对象
      • 2.2.3创建Session对象
      • 2.2.4创建事务Transaction
      • 2.2.5增删改查操作
      • 2.2.6提交事务和关闭资源
    • 2.3hibernate框架通用代码的封装

一、hibernate的介绍

hibernate是完全面向对象操作数据库的框架,在操作数据库的时候,可以以面向对象的方式来完成,不需要书写SQL语句。

二、hibernate的使用

2.1 hibernate框架的搭建

2.1.1 导包

使用hibernate框架,首先需要导入hibernate框架使用的依赖包,导包过程主要包括hibernate包和操作数据库的驱动包
hibernate包有:hibernate框架使用详解一数据库驱动包有:
hibernate框架使用详解一

2.1.2创建数据库表、实体对象

hibernate是用来读写数据库的框架,因此需要搭建对应的数据库,创建相应的数据库表。hibernate提供创建数据库表的功能,因此创建表的步骤可以省略

2.1.3创建orm元数据(对象与表的映射配置文件)

hibernate是面向对象的框架,能够做到数据库无关性。因此需要建立对象与数据库表的映射配置文件。
映射配置文件的使用说明如下:

     	 	 		 		 			 			 		 		 		 		 		 		 		 		 		 	  

2.1.4 书写主配置文件

主配置文件必须命名为:hibernate.cfg.xml,注意大小写,主配置文件放在src目录下。
主配置文件的内容与解释如下:

    	 		 		com.mysql.jdbc.Driver 		  		jdbc:mysql:///hibernate 		  		root 		  		123 		 		org.hibernate.dialect.MySQLDialect 		 		 		 		 		true 		 		true 		 		update 		 		 	  

至此hibernate框架搭建完毕。

2.2 hibernate框架的使用

2.2.1创建Configuration对象

创建Configuration对象,读取配置的hibernate框架的配置文件。
configuration功能:配置加载类,用于加载主配置,orm元数据加载

//1、创建,调用空参构造 Configuration configuration = new Configuration(); //2、读取指定配置文件  =>  空参加载方法,默认加载src下的hibernate.cfg.xml文件 configuration.configure(); 

2.2.2创建SessionFactory对象

SessionFactory功能:用于创建操作数据库核心对象session对象的工厂
简单说就是创建一个session对象
注意:1、sessionFactory负责保存和使用所有配置信息,消耗内存资源非常大
2、sessionFactory属于线程安全的对象设计
结论:保证在web项目中,只创建一个sessionFactory.

//4、根据配置信息,创建sessionfactory SessionFactory sessionFactory = configuration.buildSessionFactory(); 

2.2.3创建Session对象

Session功能:表达hibernate框架与数据库之间的连接(会话) session类似JDBC年代的connection对象
还可以完成对数据库中数据的增删改查 session是hibernate操作数据库的核心对象

// 5、获得session // 打开一个新的session对象 Session session = sessionFactory.openSession();  // 获得一个与线程绑定的session对象 // sessionFactory.getCurrentSession(); 

2.2.4创建事务Transaction

开启事务对象有两种方式,用功能范围大的一种

// 6、session获得操作事务的transaction对象 // 获得操作事务的transaction对象 // Transaction transaction = session.getTransaction(); // 开启事务并获得操作事务的transaction对象(建议使用) Transaction transaction = session.beginTransaction(); 

2.2.5增删改查操作

事务开启以后,便可以进行增删改查操作,调用的是hibernate框架提供的方法。
增加session.save()
删除session.delete()
修改session.update()
查询session.get()

2.2.6提交事务和关闭资源

transaction2.commit();// 提交事务 session.close();// 释放资源 sessionFactory.close();// 释放资源 

2.3hibernate框架通用代码的封装

对于获取Configuration对象,SessionFactory对象和Session对象的代码都是一样的,因此可以将其抽离出来。

import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtils { 	private static SessionFactory sf; 	static { 		// 1 创建,调用空参构造 		Configuration conf = new Configuration().configure(); 		// 2 根据配置信息,创建 SessionFactory对象 		sf = conf.buildSessionFactory(); 	} 	// 获得session => 获得全新session 	public static Session openSession() { 		// 3 获得session 		Session session = sf.openSession(); 		return session; 	} 	// 获得session => 获得与线程绑定的session 	public static Session getCurrentSession() { 		// 3 获得session 		Session session = sf.getCurrentSession(); 		return session; 	} } 

使用时直接调用获取相应的session对象即可,使用完毕关闭对象,释放资源。