Day42 Java框架 Hibernate框架(一)Hibernate的入门

(一)Hibernate的入门(环境搭建,API,CRUD)
(二)Hibernate的一级缓存,其他的API
(三)Hibernate的一对多配置,Hibernate的多对多的配置
(四)Hibernate的查询方式,抓取策略

一.框架概述

  1. 框架:指的是软件的半成品,已经完成了部分功能
  2. Hibernate是一个持久层的ORM框架
  3. ORM: Object Relational Mapping(对象关系映射),
         指的是将一个Java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表

二.入门

  1. 下载Hibernate的开发环境
    Hibernate3.x    Hibernate4.x   Hibernate5.x
  2. https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/
  3. 解压Hibernate
    documentation       :Hibernate开发的文档
    lib                           :Hibernate开发包
          1__required      :Hibernate开发的必须依赖包
          2__optional       :Hibernate开发的可选的jar包
    project                     :Hibernate提供的项目

三.创建一个项目,引入jar包

  1. 数据库驱动包
  2. Hibernate开发的必须的jar包
  3. Hibernate引入日志记录包

四.创建表(客户)

五.创建实体类(Customer)

六.创建映射   ★★★★★

  1. 映射需要通过XML的配置文件来完成,这个配置文件可以任意命名.尽量统一命名规范(类名.hbm.xml)
  2. 复制一份映射约束<!DOCTYPE..........>
  3. <hibernate-mapping></hibernate-mapping>
  4. 在3中建立类与表的映射
    <class name="类的完整名"  table="表名"> </class>
  5. 在4中建立类中的属性与表的主键(id)对应 
    <id name="与主键名对应的属性名" column="主键名"></id>
    在4中建立类中的属性与表的字段对应
    <property name="与字段名对应的属性名" column="字段名"></property>

七.创建一个Hibernate的核心配置文件   ★★★★★

  1. 名称:hibernate.cfg.xml
  2. 复制一份映射约束<!DOCTYPE..........>
  3. <hibernate-configuration></hibernate-configuration>
  4. 在3中建立<session-factory></session-factory>
  5. 在4中写连接数据库的基本参数
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    .......   //url,username,password
    在4中配置Hibernate的方言 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    此处resource传入的是六.中的配置文件的路径
    <mapping resource="com/mine/hibernate/demo1/Customer.hbm.xml"></mapping>

八.编写测试代码   ★★★★★

 

public void demo1(){
		//1.加载Hibernate的核心配置文件
		Configuration configuration = new Configuration().configure();
		//2.创建一个SessionFactory对象:类似于JDBC中连接池
		SessionFactory sessionFactory = configuration.buildSessionFactory();
		//3.通过SessionFactory获取到Session对象:类似于JDBC中Connection
		Session session = sessionFactory.openSession();
		//4.手动开启事务:
		Transaction transaction = session.beginTransaction();
		//5.编写代码
		
		Customer customer = new Customer();
		customer.setCust_name("张三");
		session.save(customer);
		//6.事务提交
		transaction.commit();
		//7.资源释放
		session.close();
	}

 

九.Hibernate常见配置

  1. XML提示的配置
    复制约束中的地址,打开window-->  搜索xml catalog -->选中user... 点击Add -->
                                                 key放复制的地址,key type选url,location选择File System在电脑中找到对应的dtd文件
  2. Hibernate的映射的配置
    1. class标签的配置  : 用来建立类与表的映射关系
      属性:
              name                :类的全路径
              table                 :表名(类名与表明一致,table可以省)
              catalog             :数据库名    可不填
    2. id标签的配置      : 用来建立类中的属性与表中的主键的对应关系
      属性:
              name               :类中的属性名
              column            :表中的字段名(类中的属性名和表中的字段名一致,column可以省略)
              length              :长度
              type                 :类型
    3. property标签的配置  : 用来建立类中的普通属性与表的字段的对应关系
      属性:
              name               :类中的属性名
              column             :表中的字段名
              length               :长度
              type                  :类型
              not-null             :设置非空
              unique              :设置唯一
  3. Hibernate的核心的配置
    配置方式:
    一种方式:属性文件的方式
                 hibernate.properties
                 这种方式不能引入映射文件(手动编写代码加载映射文件)
    二种方式:XML文件的方式
                 hibernate.cfg.xml
    1. 必须的配置
      连接数据库的基本参数
      ____驱动类
      ____url路径
      ____用户名
      ____密码
      方言
    2. 可选的配置
      显示SQL                 :hibernate.show_sql
      格式化SQL             :hibernate.format_sql
      自动建表                 :hibernate.hbm2ddl.auto
      ____none      :不适用hibernate的自动建表
      ____create       :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表
      ____create-drop   :如果数据库中已经有表,删除原有表,执行操作,删除这个表.如果没有表,新建一个,使用完了删除该表
      ____update        :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
      ____validate       :如果没有表,不会创建表,只会使用数据库中原有表(校验映射和表结构)
    3. 映射文件的引入
      引入映射文件的位置
      <mapping resource="com/mine/hibernate/demo1/Customer.hbm.xml"></mapping>

十.核心API

  1. Configuration
  2. SessionFactory
  3. Session:类似Connection对象是连接对象
    Session中的API
    -1-保存方法
          Serializable  save(Object obj);
    -2-查询方法
          T get(Class c , Serializable  id);
          T load(Class c , Serializable  id);
      get方法和load方法的区别?
        get方法:

                     采用的是立即加载,执行到这行代码的时候,就会马上发送SQL语句去查询
                     查询后返回时真实对象本身
                     查询一个找不到的对象的时候,返回null
        load方法:
            采用的是延时加载(lazy懒加载),执行到这行代码,不会发送SQL语句,当真正使用这个对象的时候才会发送SQL语句
             查询后返回的是代理对象// javassist-3.18.1-GA.jar 利用javassist技术产生的代理
             查询一个找不到的对象的时候,返回ObjectNotFoundException
    -3-修改方法
          void update(Object obj);     先查询,再修改(推荐)
    -4-删除方法
          void delete(Object obj);      先查询,再删除(推荐)
    -5-保存或更新
          void saveOrUpdate(Object obj);(不常用)
  4. Transaction : 事务对象
    Hibernate中管理事务的对象
     commit();
     rollback();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值