(01)Hibernate入门
admin
2023-06-08 15:41:45
0


1、Hibernate在SSH中的地位

(01)Hibernate入门


SSH
序号技术作用
1Struts基于mvc模式的应用层框架技术!
2Spring创建对象、处理对象的依赖关系以及框架整合!
3Hibernate基于持久层的框架(数据访问层使用)!


2、DAO层的代码是如何编写的?

(1)操作XML数据

(2)使用Jdbc技术

a)原始的jdbc操作, Connection/Statement/ResultSet

b)自定义一个持久层框架, 封装了dao的通用方法

c)DbUtils组件, 轻量级的dao的组件;

d)Hibernate技术【hibernate最终执行的也是jdbc代码!】


3、ORM和Hibernate


3.1、ORM的概念

O,  Object  对象

R, Realtion 关系  (关系型数据库: MySQL, Oracle…)

M,Mapping  映射

ORM, 对象关系映射!

 

ORM, 解决什么问题?

存储:  把对象的数据直接保存到数据库

获取:  直接从数据库拿到一个对象

想做到上面2点,必须要有映射


3.2、Hibernate和ORM的关系

Hibernate是ORM的实现!


4、组件学习的三方面

1、源码,引入jar文件

2、配置(.xml or .properties)

3、API


5、Hibernate入门

Hibernate开发步骤

(1)下载源码

版本:hibernate-distribution-3.6.0.Final,下载地址如下:

https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.0.Final/

(01)Hibernate入门

选择141.0MB的文件,它的文件格式是.zip格式的,而下面的文件是.gz格式的。

解压之后,它的源码位于hibernate-distribution-3.6.0.Final\project\core\src目录下


(2)引入jar文件

a)hibernate3.jar (核心文件)

    位于hibernate-distribution-3.6.0.Final目录下

(01)Hibernate入门

b)required (必须引入的jar,共6个)

    位于hibernate-distribution-3.6.0.Final\lib\required目录下

(01)Hibernate入门

c)jpa 目录

    位于hibernate-distribution-3.6.0.Final\lib\jpa目录

(01)Hibernate入门

d)数据库驱动包(我用的是mysql的驱动包)

(01)Hibernate入门


(3)写对象以及对象的映射

a)Employee.java            对象

import java.util.Date;

public class Employee
{
	private int empId;
	private String empName;
	private Date workDate;
	public int getEmpId()
	{
		return empId;
	}
	public void setEmpId(int empId)
	{
		this.empId = empId;
	}
	public String getEmpName()
	{
		return empName;
	}
	public void setEmpName(String empName)
	{
		this.empName = empName;
	}
	public Date getWorkDate()
	{
		return workDate;
	}
	public void setWorkDate(Date workDate)
	{
		this.workDate = workDate;
	}
}

b)Employee.hbm.xml        对象的映射 (映射文件)

(.hbm可能是hibernate mapping的缩写)







	
	
		
		
		
			
		

		
		
		

	
	


(4)主配置文件 src/hibernate.cfg.xml

a)数据库连接配置

b)加载所用的映射(*.hbm.xml)




    
    
        
        com.mysql.jdbc.Driver
        jdbc:mysql:///test	
        root
        root
		
        org.hibernate.dialect.MySQL5Dialect
        
        
		
		true
		
		true
		
		update
		
		
		
		
		
    

(5)测试

package com.rk.hibernate.a_hello;

import java.util.Date;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

public class App
{
	public static void main(String[] args)
	{
		// 对象
		Employee emp = new Employee();
		emp.setEmpName("张三");
		emp.setWorkDate(new Date());
		
		/*
		 * 主体思路:Configuration-->SessionFactory-->Session
		 * 细节:Session-->Transaction,必须由session创建transaction,否则无法保存。
		 */
		// 获取加载配置文件的管理类对象
		Configuration config = new Configuration();
		config.configure();
		// 创建session的工厂对象
		SessionFactory sessionFactory = config.buildSessionFactory();
		// 创建session (代表一个会话,与数据库连接的会话)
		Session session = sessionFactory.openSession();
		// 开启事务
		Transaction transaction = session.beginTransaction();
		//保存数据
		session.save(emp);
		// 提交事务
		transaction.commit();
		// 关闭
		session.close();
		sessionFactory.close();
		System.out.println("Over");
	}
}


相关内容

热门资讯

神舟二十三号载人飞船发射升空 IT之家 5 月 24 日消息,刚刚,搭载神舟二十三号载人飞船的长征二号 F 遥二十三运载火箭在酒泉...
浙江上线“创新积分制”数智平台 来源:中国新闻网 中新网杭州5月24日电(鲍梦妮)5月24日,在2026年浙江省“全国科技活动周”上...
国内知名冷门绝学大咖齐聚深圳,... 本文转自【光明日报】; 5月22日上午,作为2026文化强国建设高峰论坛重要组成部分,首届冷门绝学传...
神舟二十三号载人飞行任务航天员... 据微信公众号“中国载人航天”消息,5月24日20时16分,神舟二十三号载人飞行任务航天员乘组出征仪式...
以总理:同特朗普一致认为须消除... 新华社耶路撒冷5月24日电(记者庞昕熠 王卓伦)以色列总理内塔尼亚胡24日在社交平台发文称,他和美国...
专家解读|秉持以人为本 统筹发... 随着大模型、生成式人工智能、智能体等技术的迭代创新,人工智能正在进入加速应用的新阶段,由此引发的社会...
原创 v... vivo在5月份的新机继续增加,比如vivo S60系列、vivo Y600 Turbo等,均在5月...
“暗面”之下:山西沁源82死矿... 山西省沁源县,留神峪煤矿。5月23日傍晚,作业现场已被拦住,你只能在矿区门口看到一道栅栏,背后封锁着...
神二十三发射任务将创下多个“首... 神舟二十三号即将发射,现场各项准备工作如何?凤凰卫视特派记者孙伟健从酒泉卫星发射中心发回现场报道。
山西留神峪煤矿事故调查:写满安... 5月22日19时29分,山西沁源的暮色尚未完全降临,有着45年开矿历史的通洲集团留神峪煤矿,骤然迎来...