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要求)
        • 在每一个实体类的下面创建一个xml文件(位置和名称没有具体的要求,但建议卸载该实体类的下面),建议命名为:实体类名称.hbm.xml(此文件需要引入dtd的约束)

          创建实体类

              引入约束文件

          配置配置文件

      • 配置Hibernate的核心配置文件

        • 核心配置文件格式为xml,且核心配置文件名称和位置固定(有要求:必须放在src目录下面;必须为hibernate.cfg.xml)

          

        • 引入约束文件

           

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

            

      • 代码实现hibernate的crud操作

        • 加载hibernate的核心配置文件
        • 创建SessionFactory对象
        • 使用SessionFactory得到Session对象
        • 开启事务
        • 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的更多相关文章

  1. 三大框架之hibernate入门

    hibernate入门   1.orm      hibernate是一个经典的开源的orm[数据访问中间件]框架           ORM( Object Relation Mapping)对象关 ...

  2. Hibernate入门案例及增删改查

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

  3. Hibernate入门案例 增删改

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

  4. Hibernate入门6.Hibernate检索方式

    Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...

  5. Hibernate入门5持久化对象关系和批量处理技术

    Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...

  6. Hibernate入门4.核心技能

    Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ...

  7. Hibernate入门3.配置映射文件深入

    Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...

  8. 简单的Hibernate入门简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...

  9. Hibernate入门(1)-第一个Hibernate程序

    Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...

  10. hibernate入门之person表

    下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ...

随机推荐

  1. C Yuhao and a Parenthesis

    Yuhao and a Parenthesis time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  2. HTML替换元素,非替换元素和控制元素

    替换元素:元素内容由标签的属性来设置,标签其实就是一个占位符.替换元素因为元素内容来自外部资源,所以这些标签大多具有src,指明要引入的资源路径,所以大多仅需要一个标签就可以.例如:<link ...

  3. Eclipse创建maven的war工程没有web.xml解决方式

    当我们使用Eclipse创建maven的web项目时,会缺少xml文件,在这里我提供两种自动创建xml的方法: 1.方法一 右键项目→Java EE Tools→Generate Deployment ...

  4. Linux性能优化从入门到实战:08 内存篇:内存基础

    内存主要用来存储系统和应用程序的指令.数据.缓存等. 内存映射   物理内存也称为主存,动态随机访问内存(DRAM).只有内核才可以直接访问物理内存.   Linux 内核给每个进程都提供了一个独立的 ...

  5. Redis分布式锁【正确实现方式】

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...

  6. git上传文件夹的问题

    使用git上传文件夹一定要注意,文件夹里面至少有一个文件,因为git不能管理空文件夹 所以上传就会不成功

  7. [php代码审计] Window api函数 FindFirstFile 在php中的问题

    include文件夹中文件: 内容: <?php echo __FILE__; ?> index.php: 演示如下: “<<”替换多个任意字符: “>”替换单个字符:

  8. windowserver 常用命令

    1.查看端口占用: netstat -ano | findstr "服务端口号"2.查看程序运行id: tasklist | findstr  nginx 3.杀死进程  tskk ...

  9. POJ-1390-Blocks (复杂区间DP)

    $ POJ~1390~~Blocks: $ (很难想的区间DP) $ solution: $ 很好的一道题目.看起来似乎很简单,当时一直认为可以用二维区间DP来完成,转移 $ n^3 $ . 后来发现 ...

  10. WiFi密码新攻击破解方法,黑客攻破只需10秒

    近日,中国知名黑客安全组织东方联盟研究人员透露了一种新的WiFi黑客技术,使黑客更容易破解大多数现代路由器的WiFi密码,并且攻破只需要10秒,速度非常快. 方法是利用由流行的密码破解工具Hashca ...