Hibernate入门1
Hibernate概述:
1. 什么是框架:
写程序,在使用框架之后,帮我们实现一部分的功能,使用框架的好处可以少写一部分代码实现功能
2. 什么是hibernate框架:
- hibernate框架应用在javaee三层结构中的dao层的框架
- 在dao层里面做对数据库的crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂的jdbc代码了,不需要写sql语句了
- hibernate是一个开源的轻量级的框架
- hibernate版本
hibernate3.X
hibernate4.x(过度版本,少有人用)
hibernate5.x
3. hibernate框架的目录结构:
- documentation:hibernate的相关文档
- lib:hibernate的相关jar包
- project:hibernate的相关的源代码

4. hibernate底层实现的思想:
- hibernate使用orm思想对数据库进行crud操作
- 在web阶段学习javabean思想(有javabean的操作),javabean更正确的叫法,叫做实体类
- hibernate的orm思想(Object relational mapping):对象关系映射
让我们的实体类和我们的数据库表进行一一的对应关系:让实体类和数据库的表对应,让实体类的属性和表里面的字段对应,这样的话就不需要直接操作数据库表,二操作表对应实体类对象,就可以实现对数据库的操作。
Hibernate入门:
- 搭建hibernate环境
- 导入jar包
\lib\required\下的jar必须要

\lib\jpa\下实体映射包
还有一个是数据库的驱动包
- 使用hibernate步骤
- 导入jar包
- 创建实体类
- 使用hibernate步骤

- 配置实体类的配置文件(配置实体类和数据库表的一一对应的关系,包括属性和字段,实体类和表)
- 每一个实体类必须有一个属性对应表的主键(保证唯一性,Hibernate要求)
- 在每一个实体类的下面创建一个xml文件(位置和名称没有具体的要求,但建议卸载该实体类的下面),建议命名为:实体类名称.hbm.xml(此文件需要引入dtd的约束)
- 配置实体类的配置文件(配置实体类和数据库表的一一对应的关系,包括属性和字段,实体类和表)
创建实体类
引入约束文件
配置配置文件
- 配置Hibernate的核心配置文件
- 核心配置文件格式为xml,且核心配置文件名称和位置固定(有要求:必须放在src目录下面;必须为hibernate.cfg.xml)
- 配置Hibernate的核心配置文件

- 引入约束文件

- Hibernate在操作的过程中,只会加载核心配置文件,其他配置文件不会进行加载(如上面的映射配置文件)
- 配置hibernate.cfg.xml文件
- 配置数据库信息
- 配置Hibernate信息
- 配置映射文件信息

- 代码实现hibernate的crud操作
- 加载hibernate的核心配置文件
- 创建SessionFactory对象
- 使用SessionFactory得到Session对象
- 开启事务
- crud操作
- 提交事务
- 关闭资源
- 代码实现hibernate的crud操作
package com.geore.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import com.geore.pojo.User; public class TestDemo1 {
@Test
public void fun() {
// 加载hibernate核心配置文件,会到src目录下去查找hibernate.cfg.xml文件进行加载
Configuration cfg = new Configuration();
cfg.configure();
// 创建SessionFactory对象,读取核心配置文件,并且根据映射关系将表创建
SessionFactory sf = cfg.buildSessionFactory();
// 使用SessionFactory创建Session对象,session类似于链接对象
Session session = sf.openSession();
// 开启事务
Transaction ts = session.beginTransaction();
// 写具体的逻辑crud操作
// 添加操作
User user = new User();
user.setUsername("Geore");
user.setPassword("123456");
session.save(user);
// 提交事务
ts.commit();
// 关闭资源(之前还可以加上一步,回滚事务)
session.close();
sf.close();
}
}


映射配置文件注意点
- 映射配置文件名称和位置没有固定的要求
- 映射配置文件中,标签name属性值写实体类相关的内容
- Class标签name属性值实体类的全路径
- Id标签和property标签name属性值,实体类属性名称
- Id标签和property标签,column属性可以省略(不写默认和那么属性的值一样)
- Property标签还有一个type属性,用来指定表字段的类型(可以不写)
核心配置文件的细节
- 核心配置文件的名称和位置固定
- 核心配置文件主要分为部分的内容
- 配置数据库信息:必须写
- 配置Hibernate信息:可选
- 配置映射关系文件: 必须写
Hibernate入门1的更多相关文章
- 三大框架之hibernate入门
hibernate入门 1.orm hibernate是一个经典的开源的orm[数据访问中间件]框架 ORM( Object Relation Mapping)对象关 ...
- Hibernate入门案例及增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
- Hibernate入门案例 增删改
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
- Hibernate入门6.Hibernate检索方式
Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...
- Hibernate入门5持久化对象关系和批量处理技术
Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...
- Hibernate入门4.核心技能
Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- 简单的Hibernate入门简介
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...
- Hibernate入门(1)-第一个Hibernate程序
Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...
- hibernate入门之person表
下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ...
随机推荐
- 分布式唯一ID生成器
在应用程序中,经常需要全局唯一的ID作为数据库主键.如何生成全局唯一ID? 首先,需要确定全局唯一ID是整型还是字符串?如果是字符串,那么现有的UUID就完全满足需求,不需要额外的工作.缺点是字符串作 ...
- docker相关知识
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI).持续部署(CD)为基础,来优化程式开发.测试.系统运维等所有环节.突出重视软件开发人员和运维人员的沟通合作,通过自 ...
- C# 同步调用 异步调用 异步回调 多线程的作用
同步调用 : 委托的Invoke方法用来进行同步调用.同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行. 异步调用 :同步调用会阻塞线程,如果是要调用一项繁重的 ...
- vue项目中使用高德地图(根据坐标定位点)
前言 项目中需要根据坐标定位,将自己的实现过程写下来,废话不多说,上代码 正文 <script> var map,marker; export default { data(){ retu ...
- 基本SQL查询语句
使用Emp表和Dept表完成下列练习 Emp员工表 empno ename job Mgr Hiredate Sal Comm Deptno 员工号 员工姓名 工作 上级编号 受雇日期 薪金 佣金 部 ...
- Hibernate初始化创建SessionFactory,Session,关闭SessonFactory,session
1.hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuratio ...
- ubuntu下载地址
http://mirrors.aliyun.com/ubuntu-releases/16.04/
- Codeforces Round #425 (Div. 2) - B
题目链接:http://codeforces.com/contest/832/problem/B 题意:给定一个好字母集合(只有小写字母,除了这些外其余都是坏字母集合),给定一个匹配模式串, 模式串只 ...
- 安装kafka多节点
安装多节点的kafka只需要创建多份配置文件(server.properties),然后指定他们启动kafka服务即可,本例中采用一台服务器来模拟3个节点的kafka集群搭建.同理,使用一台服务器搭建 ...
- hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】
题目链接 比赛时没抓住重点,对那个受限制的“分数求和”太过关心了..其实如果先利用莫比乌斯函数的一个性质把后面那个[gcd(i,j)=1]去掉,那么问题就可以简化很多.公式如下 这和之前做过的一道题很 ...