Hibernate学习笔记(3)——hibernate操作数据库的步骤和核心接口

用Hibernate建立与数据库的连接,要先做好以下准备:

1.创建实体类:

  • 实体类(也称持久化类)是一个带有一些属性的JavaBean类,实体类对属性的存取方法(getterand setter method)使用了标准JavaBean命名约定,同时把类属性的访问级别设成私有的。
  • 为了通过反射机制来实例化类的对象,我们需要提供一个无参的构造器,所有的实体类都要求有无参的构造器,因为Hibernate需要使用Java反射机制来为你创建对象。
  • 最后要为实体类实现Java.io.Serializable接口,以便Hibernate能更好的缓存实体对象。

2.创建和配置映射文件:

通过实体映射文件,Hibernate知道怎样去加载和存储实体类的对象,知道应该访问数据库里面的哪个表及应该使用表里面的哪些字段。

示例代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="org.ijob.bean.Seeker" table="ijob_seeker">
		<!-- 主键映射 -->
		<id name="id" type="string">
			<column name="id" length="32"></column>
			<generator class="uuid" />
		</id>
      <!—属性映射 -->
		<property name="email" type="string">
			<column name="email" length="100"></column>
		</property>
		<property name="password" type="string">
			<column name="password" length="20"></column>
		</property>
		
		<property name="name" type="string">
			<column name="name" length="10"></column>
		</property>
		<!—此处省略系列属性映射 -->
	</class>
</hibernate-mapping>


主键映射:在实体类映射文件中,被映射的类必须定义对应数据库表的主键字段的属性。映射文件的<id>元素定义了该属性到数据库表主键字段的映射。

主键生成策略:主键生成器generator是可选的,它用于指定实体对象的标识符(在表中称之为主键)生成策略。

3.在主配置文件中添加实体映射类文件的路径:

将映射文件的路径信息添加到hibernate.cfg.xml中:<mapping resource=“***/***/***.hbm.xml" />

4.测试是否连接成功。

连接成功之后就可以用Hibernate操作数据库了。

 

Hibernate操作数据库的七大步骤如下:

1.获取配置Configuration

2.创建SessionFactory(会话工厂)

会话工厂是重量级、单实例的,由于创建成本比较高,却频繁被引用,所以最好只创建一个实例,并在静态初始化块中初始化一次。

3.打开session

4.开始一个事务

5.持久化操作

6.提交事务

7.关闭session。

示例代码如下:

// 1、获取配置
	Configuration cfg = new Configuration().configure();
	ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
			.applySettings(cfg.getProperties()).buildServiceRegistry();
	// 2、创建SessionFactory
	SessionFactory factory = cfg.buildSessionFactory(serviceRegistry);
	// 3、获取session
	Session session = factory.openSession();
	Transaction tx = session.getTransaction();
	try {
		// 4、开启事务
		tx.begin();
		Seeker seeker = new Seeker();
		seeker.setEmail("abc@163.com");
		seeker.setPassword("abc");
		// 5、保存seeker对象
		session.save(seeker);
		// 6、提交事务
		session.getTransaction().commit();
	} catch (Exception e) {
		tx.rollback();
		e.printStackTrace();
	} finally {
		// 7、关闭session
		session.close();
	}
}


 

 Hibernate的核心接口:

1.Configuration接口

Configuration对象用来配置和引导Hibernate,一个Hibernate应用使用一个Configuration实例来指定主配置文件的位置,然后创建会话工厂。
Configuration cfg = new Configuration().configure("/cfg/auction.cfg.xml")

2.SessionFactory接口

一般情况下,整个应用只有唯一的一个SessionFactory,它应该在应用初始化时被创建。
编写一个工具类,将SessionFactory的实例设置为静态成员(只在内存中存在一份)并将其初始化放在静态初始化块中(只执行一次)。

3.Session接口

Session(会话)接口是Hibernate应用使用的主要接口,它拥有操作持久化对象的一系列API,可用于管理(例如加载和保存)对象,因此我们也称之为持久化管理器”。Session实例是轻量级的,创建与销毁的代价不昂贵,通常我们会为每个事务创建一个Session实例,并在使用后关闭它。

4.Transaction(事务)接口

Transaction(事务)接口是对实际事务实现的一个抽象,这些实现包括JDBC事务或者JTA事务等。Transaction接口中主要定义了commit()rollback()两个方法,前者是提交事务的方法,后者是回滚事务的方法。

5.Query和Critera接口

Query(查询)接口允许在数据库上执行查询,并控制查询如何具体执行。查询使用HQL或SQL。Query实例可用来绑定查询参数,限定查询返回的结果数,并且最终执行查询。
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值