• hibernate 学习 一 基本概念


    1: Hibernate对JDBC进行封装,以面向对象的方式对关系型数据库进行操作。

    2:  Hibernate的配置文件: hibernate.properties  或者  hibernate.cfg.xml(这个用的更多),用于配置和底层数据库的连接信息。

    3: Hibernate核心接口: configuration接口,  SessionFactory接口,Session接口,Transaction接口和用于数据库查询的Query接口。通过这些接口对持久化对象进行操作,以及事务控制。

    4;Hibernate的持久化步骤

     (1)Hibernate初始化,创建Configuration对象。

       这一步,读XML配置文件和映射文件的信息到Configuration对象属性中。

    • 从Hibernate.cfg.xml中读取配置信息。存到Configuration;
    • 根据Mapping元素加载所有实体类对应的映射文件到Configuration;

     (2)创建SessionFactory实例

      通过Configuration对象创建SessionFactory,也就是将Configuration对象内的配置信息存入SessionFactory.

      SessionFactory充当数据源的代理,并负责创建Session对象。得到SessionFactory后,Configuration的使命就结束了。

       (3)创建Session实例,建立数据库连接

      SessionFactory打开Session,创建一个session就相当于与数据库建立一个新的连接。Session对象用来操作实体对象,并把这些操作转换成对数据库中数据的

      增、删、改、查。

       (4) 创建Transaction实例,开始一个事务。

        Transaction用于事务管理,一个Transaction对象可以包括多个操作。在进行CRUD实,必须先创建Transaction对象。

       (5)利用Session的方法(save/update/remove...)进行持久化操作。将实体对象持久化到数据库。

          (6) 提交操作结果并结束事务。对对象持久化操作后,必须提交事务。

     (7)关闭session,与数据库断开连接。     

       问题1: Hibernate的持久化类为什么必须提供一个无参的构造函数。

    因为hibernate框架会调用这个默认构造方法来构造实例对象。。
    即Class类的newInstance方法 这个方法就是通过调用默认构造方法来创建实例对象的 ,
    另外再提醒一点,如果你没有提供任何构造方法,虚拟机会自动提供默认构造方法(无参构造器),
    但是如果你提供了其他有参数的构造方法的话,虚拟机就不再为你提供默认构造方法,这时必须手动把无参构造器写在代码里,
    否则new Xxxx()是会报错的,所以默认的构造方法不是必须的,只在有多个构造方法时才是必须的.

    问题二: 持久化类必须提供一个标识属性,与表的主键对应

    问题三: 建议不要将持久化类声明为final
      
    因为延迟加载。

    问题三: 为持久化类生生getter、setter方法,
      

  • 相关阅读:
    2018年3月至4月小结
    前端面试中,经常看到垂直居中与水平居中,实际排版用的多吗?
    Hbuilder配置识别逍遥安卓模拟器
    php静态变量与方法与phar的使用
    切面反射获取方法
    Spring:源码解读Spring IOC原理
    怎样批量提取JPG照片的文件名
    如何1秒批量提取电脑文件夹中的所有文件、文件夹名字到txt/excel
    用powermock 方法中new对象
    springboot单元测试自动回滚:@Transactional
  • 原文地址:https://www.cnblogs.com/liufei1983/p/8583428.html
Copyright © 2020-2023  润新知