Hibernate入门和基本操作

1、整体知识体系:

image.png

1.1 web回顾:

  • JavaEE三层结构:
    • web层:struct2框架;
    • service层:spring框架;
    • dao层:hibernate框架
      • 对数据库进行crud操作;

1.2 MVC思想:分层操作,不是java中独有的

  • m:模型;
  • v:视图;
  • c:控制器;

1.3 Hibernate概述:

  • 什么是框架:框架为建筑学概念,写程序使用框架之后,帮助我们实现一部分功能,好处为可以少写一部分代码实现功能;
  • 什么是Hibernate框架:
    • hibernate框架应用在javaee三层结构中dao层框架;
    • 在dao层里面对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处为不需要写复杂的jdbc代码了,不需要写sql语句实现;
    • hibernate为开源(免费、代码开放)的轻量级的框架;
    • hibernate版本:3.x、4.x(无人用)、5.x(学习中)
      lib:hibernate相关jar包
  • 什么是orm思想:
    • hibernate使用orm思想对数据库进行crud操作;
    • 在web阶段学习javabean,封装数据,更正确的一种叫法:实体类;
    • orm:object relation mapping(对象关系映射)
      • 文字描述:
        (1)让实体类和数据库进行一一对应关系;让实体类首先和数据库表对应;让实体类属性和表里面字段对应;
        (2)不需要直接操作数据库,而操作表对应实体类对象;
jdbc代码
//加载驱动
class.forName("com.mysql.jdbc.Driver");
//创建连接
Connection conn= DriverManager.getConnection(url,username.password);
//对sql进行预编译操作
String sql="select * from user";
PreparedStatement psmt=conn.preparedStatement(sql);
//执行sql 查询sql
ResultSet re=psmt.executeQuery();
//遍历结果集
......
//释放资源
  • 画图分析:(框架阶段会使用很多配置文件)


    image.png

1.4 Hibernate入门:

  • 搭建hibernate环境(dao层);
    • 第一步:导入hibernate的jar包;(因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,需要导入其他的日志jar包,还有不要忘记mysql的驱动jar包)


      image.png
    • 第二步:创建实体类,使用hibernate的时候,不需要自己手动创建表;


      image.png
    • 第三步:配置实体类和数据库表的一一对应关系(映射关系:使用配置文件来实现映射关系);
      • 创建xml格式的配置文件(映射配置文件和位置没有固定要求,一般建议创建在实体类所在包里面,实体类名称.hbm.xml);
      • 配置文件是xml格式的,一般在配置文件中先引入xml约束(dtd、schema,在hibernate里面目前引入的约束为dtd约束);


        image.png
      • 配置;


        
      
    
    
    
    
         
                
         
         
         
         
         
         
         
    
    


  • 第四步:创建hibernate的核心配置文件
    • (1)核心配置文件格式xml,但是核心配置文件名称和位置是固定的;位置必须在src下面,名称必须叫hibernate.cfg.xml

    • (2)引入dtd约束:不同于映射时候的约束;


      image.png
    • (3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载;
      第一部分:配置数据库信息;
      第二部分:配置hibernate信息;
      第三部分:把映射文件放到核心配置文件中;





    
    
    com.sql.jdbc.Driver
    jdbc:sql:///hibernateday_01
    root
    root
    
    
        
        true
        
        true
            
        update
        
        org.hibernate.dialect.SQLDialect
        
    
    
    
    

实现添加操作:
第一步:加载hibernate核心配置文件;
第二步:创建SessionFactory对象;
第三步:使用SessionFactory创建session对象;
第四步:开启事务;
第五步:写具体逻辑crud操作;
第六步:提交事务;
第七部:关闭资源;
最终需要看到两个效果:(1)是否会帮我们生成那个表;(2)看表是否有记录;

package cn.itcast.hibernatetest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import cn.itcast.entity.User;

public class HibernateDemo {
    
    @Test
    public void testAdd() {
//          第一步:加载hibernate核心配置文件;
            //到src下面找到名称是hibernate.cfg.xml
            //在hibernate里面封装对象
            Configuration cfg = new Configuration();
            cfg.configure();
    
//          第二步:创建SessionFactory对象;
            //读取hibernate核心配置文件内容,创建sessionFactory
            //在这个过程中,根据映射关系,在配置数据库里面把表创建出来
             SessionFactory sessionFactory = cfg.buildSessionFactory();
        
//          第三步:使用SessionFactory创建session对象;
             //类似于连接
            Session session = sessionFactory.openSession();
                    
//          第四步:开启事务;
            Transaction tx = session.beginTransaction();
        
//          第五步:写具体逻辑crud操作;
            //添加功能
            User user = new User();
            user.setUsername("小王");
            user.setPassword("250");
            user.setAddress("日本");
            //调用session的方法实现添加
            session.save(user);
        
//          第六步:提交事务;
            tx.commit();
        
//          第七部:关闭资源;
            session.close();
            sessionFactory.close();
    }

}

你可能感兴趣的:(Hibernate入门和基本操作)