Hibernate简介:

  Hibernate是一个开源对象关联关系映射的框架,他对JDBC做了轻量级的封装,使我们可以通过面向对象的思想操作数据库。

  为什么要用Hibernate:

    1: 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

    2:它是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。

        ORM:对象关系映射。简单来说就是java对象与数据库字段名的映射关系

    3:Hibernate使用java反射机制,而不是字节码增强程序来实现透明性

    4:它是一个轻量级框架,并支持各种关系型数据库,支持一对一、一对多、多对一、多对多的各种复杂关系。

  Hibernate核心控件:                              //注:核心控制也就是基本工作流程

    1:Configuration:负责配置并启动Hibernate,创建SessionFactory对象;

    2:SessionFactory:负责初始化hibernate,创建Session对象;

    3:Session:负责被持续化对象CRUD操作;

    4:Transaction:负责事务的相关操作;

    5:Query和Criteria接口:负责执行各种数据库查询

  工作流程(实现简单配置):

    1:通过Configuration对象读取并解析配置文件(hibernate.cfg.xml :主要配置Hibernate相关参数)

   <session-factory>
<!-- 配置关于数据库连接的四个项:driverClass url username password -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    <!--加载驱动-->
<property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property>      <!--配置url-->
<property name="hibernate.connection.username">root</property>                 <!--用户名-->
<property name="hibernate.connection.password">yezi</property>                 <!--密码--> <!-- 可以将向数据库发送的SQL语句显示出来 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL语句 -->
<property name="hibernate.format_sql">true</property>
<!-- hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 配置hibernate的映射文件所在的位置 -->
<mapping resource="cn/itheima/domain/Customer.hbm.xml" />
</session-factory>

    2:读取并解析映射信息,创建SessionFactory对象

    3:打开Session(会话)

    4:创建事务Transaction

    5:持久化操作,对对象进行CRUD操作

    6:提交事务

    7:关闭Session和SessionFactory对象   

 Configuration config = new Configuration().configure();             // Hibernate框架加载hibernate.cfg.xml文件,获取Configuration对象
SessionFactory sessionFactory = config.buildSessionFactory();         //获取sessionFactory对象
Session session = sessionFactory.openSession();                  //打开会话,获取Seeion对象 // 开启事务
Transaction transaction = session.beginTransaction();              //开启事务 // 操作
session.save(c);                                    //通过Session对象进行操作 // 事务提交
// session.getTransaction().commit();
transaction.commit();
session.close();
sessionFactory.close();

hibernate简介以及简单配置的更多相关文章

  1. Hibernate映射文件简单配置

    <?xml version="1.0" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibe ...

  2. Hibernate学习2--对象的三种状态以及映射关系的简单配置

    上篇hibernate的博客总体简单梳理了对象持久化的一些思想以及hibernate中对象持久化化的方法,下面说说对象持久化过程的三种状态. 一.hibernate缓存的概念 1.session与缓存 ...

  3. 框架基础之Hibernate简介

    框架基础之Hibernate简介 1.什么是Hibernate? Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来 ...

  4. Hibernate简介与实例

    一.Hibernate简介 1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等 ...

  5. hibernate学习一(hibernate简介与准备)

    一.hibernate简介 Hibernate是一个开放源代码的对象-关系映射(Object/Relational Mapping 即 ORM)框架,它对JDBC进行了非常轻量级的对象封装,它将POJ ...

  6. ssm简单配置

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...

  7. C#可扩展编程之MEF学习笔记(一):MEF简介及简单的Demo

    在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架).单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架 ...

  8. 1.一起来学hibernate之hibernate简介

    一.简介 Hibernate,是一个开源的ORM框架.所谓的ORM,即object relative mapping,就是对象关系映射. 那什么是对象关系映射? 对象,即java类,又称为实体类,对象 ...

  9. Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)

    然后是项目下的文件:完整的项目请看  上一篇 Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(一) 项目下的springmvc-servlet.xml配置文件: ...

随机推荐

  1. java 同时安装多版本问题(转)

    描述:刚到新公司,自己安装了jdk1.7和开发工具myeclipse10,但是由于公司项目的需要(具体原因不详细描述了),需要使用myeclipse6.5和jdk1.6.于是在切换jdk1.7和jdk ...

  2. JSF 与 struts2

    http://suhuanzheng7784877.iteye.com/blog/1041411

  3. 条件分页 分页条件和页参数传递方式一 超链接拼串 方式二 使用查询表单searchForm

    <%-- Created by IntelliJ IDEA. User: jie Date: 2019/5/10 Time: 20:00 To change this template use ...

  4. String常用方法简介

    1. 创建String对象的常用方法 (1) String s1 = "mpptest" (2)  String s2 = new String(); (3) String s3 ...

  5. GYM 101572I(有向图上最小环)

    逗号空格是假的,全都直接连边就行. 提供一个迪杰n次的图上最小环板子. #include <cstdio> #include <cstring> #include <io ...

  6. Linux .Net Core

    Linux .Net Core自宿主应用程序瘦身记 一,.NET Core 自宿主应用程序个头有点大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标 ...

  7. Error resolving template: template might not exist or might not be accessible是一句缩水报错?

    一 thymeleaf在开发的时候本地调试正常,但是在测试环境打成jar包就报这个错误了. 二 template might not exist or might not be accessible ...

  8. window下安装php调试工具xdebug

    1.https://xdebug.org/wizard.php在方框中输入本地phpinfo.php中的内容会提示对应要安装的版本, 2.https://xdebug.org/download.php ...

  9. 织梦channel标签中currentstyle不生效

    文件:/include/taglib/channel.lib.php line约133行:if( ($row['id']==$typeid || ($topid==$row['id'] &&a ...

  10. Java集合框架—Set

    集合框架 Set的特点:无序,不可以重复元素. (1)HashSet:数据结构是哈希表.线程是非同步的.               保证元素唯一性的原理:判断元素的hashCode值是否相同.   ...