一:核心配置分为三大部分  必须的配置 、可选的配置和引入映射文件。

1.必须的配置 连接数据库的参数:驱动类  url路径  用户名  密码  方言

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">000000</property><!-- 他的方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

  2.可选的配置 显示sql  整理sql语句的格式

<!-- 可选的配置 --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property>

  3.引入映射文件

<mapping resource="com/itheima/domain/Customer.hbm.xml"/>


二 映射的配置

  首先介绍里面的标签的属性

  

class标签的配置  作用:标签用来建立类与表的映射关系
         属性
              name:类的全路径
              talbe数据库的表名
   id标签的配置    作用:标签用来建立类中的属性与表中的主键的对应关系

    name:类的属性名,只要是name就去类中去找
    column类中的字段名
property标签的设置    作用:建立类中的普通属性与表的联系

    name:类中 的属性名
    column类中的字段名
               length长度 type     类型 not-null设置非空 unique设置唯一

<hibernate-mapping><!-- 建立类与表的映射关系 --><!--当时这里后面少了个引号,直接导致后面的id变成蓝色 --><class name="com.itheima.domain.Customer" table="cst_customer"><id  name="cust_id" column="cust_id"><!-- <generator class="native"/>     -->    <generator class="native"/></id><!-- 与普通字段建立对应关系 --><property name="cust_name" column="cust_name"/><property name="cust_source" column="cust_source"/><property name="cust_industry" column="cust_industry"/><property name="cust_level" column="cust_level"/><property name="cust_phone" column="cust_phone"/><property name="cust_mobile" column="cust_mobile"/></class>
</hibernate-mapping>

  三 核心的API

  Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通过这些接口,可以对持久化对象进行存取、事务控制。

      1 SessionFactory

     SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

hibernate的二级缓存现在在企业中已经不用了,用redis来替换他了。 sessionFactory一个程序只须创建一次就行,那么我们就抽取一个工具类,这样效率会提升。

  抽取的工具类

public class HibernateUtils {public static final Configuration configuration;public static final SessionFactory sessionFactory;//写一个静态代码快static{configuration=new Configuration().configure();sessionFactory=configuration.buildSessionFactory();}public static Session openSession(){return sessionFactory.openSession();}
}

  2 Configuration

    作用:加载核心配置文件

  3 Session  :类似JDBC的connection对象是一个连接对象,是数据库交互的桥梁

    get方法和load方法的区别 (面试经常会问)
     get 采用立即加载 查询到的是对象本身 找不到对象的时候会返回空
     load就不一样了 采用的是延迟加载(Lazy懒加载) 查询后返回的是代理对象 查询不到一个对象的时候会抛异常
     在开发中用的比较多的还是get

  

           //上面的是get方法     Customer customer = session.get(Customer.class, 11l);//这里是long类型
        System.out.println(customer);      //下面的是load方法Customer customer = session.load(Customer.class, 4l);System.out.println(customer);    

  更新操作

      //第二种方式是先查询,再更新,推荐这种方式Customer customer = session.get(Customer.class,6l);customer.setCust_name("王宏");session.update(customer);

   删除操作

@Testpublic void demo4(){Session session = HibernateUtils.openSession();Transaction beginTransaction = session.beginTransaction();//先查询再删除,级联删除Customer customer = session.get(Customer.class,4l);session.delete(customer);beginTransaction.commit();session.close();}

  查询所有

  

@Test//查询所有public void demo5(){Session session = HibernateUtils.openSession();Transaction beginTransaction = session.beginTransaction();Query query = session.createQuery("from Customer");    //面向对象List list = query.list();for (Object object : list) {System.out.println(object);}beginTransaction.commit();session.close();}

  

转载于:https://www.cnblogs.com/bao6/p/10335887.html

hibernate框架(二)核心配置API相关推荐

  1. Hibernate框架之入门配置

    一.Hibernate导入相关的包 参考:http://blog.csdn.net/tunni/article/details/54982160 这些包包括相应数据库驱动.hibernate.zip下 ...

  2. 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

    1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...

  3. Hibernate 框架(二)(下载及环境搭建)

    一.Hibernate下载 1.通过下面网站进行下载:https://zh.osdn.net/,进入网站如下图所示. 2.单击页面顶部的导航栏中的"下载",即可进入 3.在搜索框中 ...

  4. 深入浅出学习Hibernate框架(二):JDBC基础操作

    上篇博客<深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架>简单介绍了一下Hibernate框架,并且举了一个实例来了解Hibernate.这篇博客将介绍JD ...

  5. java hibernate 配置_JAVA语言之关于hibernate的核心配置

    本文主要向大家介绍了JAVA语言之关于hibernate的核心配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.hibernate中的核心配置文件:hibernate.rfg. ...

  6. 框架之 hibernate之二

    1. Hibernate持久化对象的状态 2. Hibernate的一级缓存 3. Hibernate操作持久化对象的方法 4. Hibernate的基本查询 Hibernate的持久化类 什么是持久 ...

  7. 在hibernate框架中配置显示sql语句

    使用Hibernate的框架开发时,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true< ...

  8. Hibernate→ORM、简介、第一个Hibernate实现、核心XML配置、Hibernate执行流程、操作数据库对象session、事务、映射XML配置、单例CRUD、get与load

    OMR Hibernate 官网 http://hibernate.org/ 第一个Hibernate实现 配置文件 持久化类 关系映射文件 测试类 代码 hibernate.cfg.xml常用配置 ...

  9. 安卓巴士专家讲堂二十一期:揭秘Android框架层核心模块

    论坛地址: http://www.apkbus.com/android-121872-1-1.html 试读地址:http://www.apkbus.com/android-121004-1-1.ht ...

最新文章

  1. 一封建议信,不知道这样写可以吗?
  2. 用python画烟花-过年了,用Python放一场浪漫烟花秀!
  3. ASP.NET MVC 从后台获取的字符串转换成HTML标签
  4. 创建到另一个工作簿中已定义名称的外部引用的帮助(Excel)
  5. react 设计模式与最佳实践
  6. 【Hook】postman工具的代码生成工具让它锦上添花
  7. php ajax mysql 出错,MySql + PHP + Ajax的乱码问题的解决方案
  8. MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
  9. HDU1287 破译密码【密码】
  10. 【Django 2021年最新版教程26】模板语言 前端if判断怎么用 实例
  11. undefined reference to错误的解决方法
  12. 如何简单运行Java程序
  13. 使用Google Chrome Frame(谷歌浏览器内嵌框架)解决低版本IE不兼容问题
  14. 中国地图填色问题Python API(动态)
  15. 阿里云服务器搭建私人云盘
  16. base64和base32的区分方法
  17. Python安全工具编写-密码爆破
  18. SQL Server Reporting Services
  19. ISP简介(stm32)
  20. 考研大作文模板与实战(图表为主+部分图画新题型)

热门文章

  1. 树形DP-HDU1561 The more, The Better
  2. PAT1021 Deepest Root
  3. Centos下安装MySQL全过程(linux下安装MySQL)
  4. Reflector.FileDisassembler的一个bug
  5. 高三!忏悔ing~(在这儿的第一篇随笔)
  6. 记录一次通过抓包解决Zabbix no active checks on server
  7. 实时搜索专家Krzana正式进军金融大数据市场
  8. 精品软件 推荐 瑞星个人防火墙V16 新UI、新功能、新体验
  9. Oracle 11g新特性密码大小写敏感问题
  10. 解决关于vs2010中w无法 显示的问题