hibernate 概述

什么是框架

写程序,使用框架之后,帮我们实现一部分的功能,使用框架的好处,少写一部分的代码实现功能

什么是hibernatenate框架

  • hibernate 框架应用在Javaee框架三层结构中的dao层框架
  • 在dao层里面做对数据库的crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进行封装,使用hibernate好处,不需要写复杂的jdbc代码了,不需要写sql语句
  • hibernate是开源的轻量级框架
  • hibernate版本
    • hibernate3.x
    • hibernate4.x
    • hibernate5.x
      这里写图片描述
      • lib 放置的是jar包
      • document 放置的文档
      • project 放置的是源代码

什么是orm的思想

  • hibernate使用orm思想对数据库进行orm操作
  • 在web阶段学习JavaBean,更正确的叫饭叫做实体类
  • orm;object relational mapping 对象关系映射

文字描述:
- 让实体类 和 数据库表进行一一对应的关系
- 让实体类首先和数据库表对应
- 让实体类属性和表 里面的字段对应
- 不需要直接 操作数据库表,而操作表对应的实体类对象这里写图片描述

ORM框架

  • Hibernate
    • 非常优秀成熟的ORM框架
    • 采用面向对象的方式,完全对象的持久化操作
    • 完全的ORM框架
  • MyBatis
    • 相比hibernate灵活度比较高,运行速度块
    • 开发速度慢,不支持纯粹的面向对象的操作,需要熟悉sql语句及其优化
    • 半自动的ORM框架

hibernate案例入门

  • 第一步:导入hibernatejar包这里写图片描述
    • 因为使用hibernate的时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他 的jar包,
    • 还需要mysql 驱动jar包)
  • 第二步:创建实体类image
    • 使用hibernate的时候,不需要自己手动创建表,hibernate会自动将表格创建好
  • 第三步:配置实体类和数据库表格的对应关系(==映射配置文件==)
    • 创建xml格式的==映射配置文件==
      • 配置文件名称和位置没有固定要求
      • 但是一般将配置文件写在实体类所在的包下,配置文件的名称为:==配置文件名.hbm.xml==
    • 给配置文件引入dit约束 ,这个约束可以通过网络寻找
    • ==hibernate映射配置文件==实例:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
      <hibernate-mapping>
      <!-- 1. 配置实体类和表格的对应
      name :写实体类 的全路径名字
      table :写表格的名字
      -->
      <class name="com.td.domain.Student" table="t_student">
      <!-- 2. 配置实体类的id和表的id对应
      hibernate要求 必须有一个字段作为唯一值,实体类中必须有一个属性是唯一值
      id标签,name属性写:实体类中唯一的属性名
      column 属性写:生成的表字段名称
      为了更加直观,一般情况下表格的字段和属性名是一样的
      -->
      <id name="sid" column="sid">
      <!-- 3. 设置id自动增长策略
      属性值native就是表示主键自动增长
      -->
      <generator class="native"></generator>
      </id>
      <!-- 4. 配置其他实体类的属性和表格的字段对应的关系
      name属性:实体类的属性名
      column属性:表格的字段名
      建议设置为一样的,这样可以更加直观
      -->
      <property name="name" column="name"></property>
      <property name="age" column="age"></property>
      <property name="gender" column="gender"></property>
      </class>
      </hibernate-mapping>
  • 第四步:创建hibernate的核心配置文件

    • 核心配置文件的格式xml,但是核心配置文件的名称和 位置是固定的
      • ==位置:必须是src下==
      • ==名称:必须是hibernate.cfg.xml)
    • 引入dtd约束

          <!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
      "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    • hibernate在执行的过程中,只会加载核心配置文件,其他配置文件不会加载,为了让映射配置文件成功加载,需要将映射配置文件引入到核心配置文件中

      • 配置数据库信息(必须有,否则连接不到数据库)
      • 配置hibernate信息,根据需要选择性配置
      • 将映射配置文件引入到核心配置文件中,必须引入
                        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
        <hibernate-configuration>
            <session-factory>
                <!-- 1.配置数据库信息 -->
                <property name="hibernate.connection.deriver_class">com.mysql.jdbc.Driver</property>
                <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb1</property>
                <property name="hibernate.connection.username">root</property>
                <property name="hibernate.connection.password">123</property>
        
                <!-- 2. 配置hibernate信息,可选操作,不需要全部配置,使用什么配置什么 -->
                    <!-- 输出底层sql语句 -->
                <property name="hibernate.show_sql">true</property>
                    <!-- 输出底层sql语句格式 -->
                <property name="hibernate.format_sql">true</property>
                    <!-- hibernate自动建表,如果有就更新,没有就新建 -->
                <property name="hibernate.hbm2ddl.auto">update</property>
                <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
                <!-- 3.将映射配置文件引入到核心配置文件中 
                    路径是相对于src目录的
                    -->
                <mapping resource="com/td/domain/user.hbm.xml"/>
        
            </session-factory>
        </hibernate-configuration>
  • hibernate代码编写步骤

    1. 加载hibernate核心配置文件
    2. 创建SessionFactory对象
    3. 使用SessionFactory对象获取Session对象
    4. 开启事务
    5. 写具体逻辑的增删改查操作
    6. 提交事务
    7. 释放资源
    8. ==注意==,其他的步骤都是固定的,只有增删改查是自定义可变的
      
      
          import org.hibernate.Session;
          import org.hibernate.SessionFactory;
          import org.hibernate.Transaction;
          import org.hibernate.cfg.Configuration;
          import org.junit.Test;
      
          import com.td.domain.Student;
      
          public class Demo1 {
              @Test
              public void test() {
          //      加载核心配置文件,找到src目录下的hibernate.cfg.xml配置文件,加载配置文件
                  Configuration config = new Configuration();
                  config.configure();
          //      创建SessionFactory对象,读取核心配置文件的内容,创建了对象SessionFactory
          //      根据核心配置文件引入的映射配置文件,在数据库中创建表格
                  SessionFactory factory = config.buildSessionFactory();
          //      获取Session对象,这个对象的作用类似于连接
                  Session session = factory.openSession();
          //      开启事务
                  Transaction transaction = session.beginTransaction();
          //      具体的增删改查代码
                  Student stu = new Student();
                  stu.setName("小明");
                  stu.setAge("18");
                  stu.setGender("男");
          //      调用session的方法,将数据添加进去
                  session.save(stu);
          //      提交事务
                  transaction.commit();
          //      释放资源
                  session.close();
                  factory.close();
              }
          }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值