zoukankan      html  css  js  c++  java
  • 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 equired下的jar必须要

          

         libjpa下实体映射包

              还有一个是数据库的驱动包

      • 使用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信息:可选
      • 配置映射关系文件: 必须写
  • 相关阅读:
    mysql 中只能使用 localhost 登录,用ip不能登陆
    在springboot 和 mybatis 项目中想要显示sql 语句进行调试
    从一张表数据导入到另一张表
    mysql 中 delete 子查询的限制
    配置eureka 老是报错connected time out 或者 refused connected
    Linux-TCP 出现 RST 的几种情况
    MySQL-优化之 index merge(索引合并)
    Python-Mac 安装 PyQt4
    PHP-PHP-FPM的max_children一些误区
    Linux-磁盘及网络IO工作方式解析
  • 原文地址:https://www.cnblogs.com/geore/p/7470441.html
Copyright © 2011-2022 走看看