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. ignoring option MaxPermSize=256m; support was removed in 8.0 - unsupported JVM property

    MaxPermSize 在JVM8 中已经被删除. 可以使用 JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m 参考 https://b ...

  2. MySQL的ibdata1文件占用过大瘦身

    处理MySQL的ibdata1文件过大问题本人在对数据库进行大量的数据插入和删除的时候,发现ibdata1的占了将近一个T ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空 ...

  3. POJ 3299

    #include <iostream> #include "math.h" double e2h(double e) { return 0.5555*(e-10.0); ...

  4. CSS标签大全

    CSS常用标签 字体属性:(font) 大小:font-size: x-large;(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 :font-styl ...

  5. Hart协议

    官方https://fieldcommgroup.org/technologies/hart/documents-and-downloads-hart 参考网页http://www.eeworld.c ...

  6. opencv 形态学膨胀和腐蚀以及开运算和闭运算

  7. php时间戳存在8小时误差

    当将PHP时间戳转化为正常的时间格式一般的操作方法如下: $mytime=time(); echo $mytime.'<br />'; echo date('Y-m-d H:i:s',$m ...

  8. arcgis python 保存当前窗口图形为jpg

    1,第一步打开arcgis 将图形加载进去 第二步,将要保存的图形调到合适的比例尺,然后点击下面按钮 第三步,将写好的python 语句放到里面去: import arcpy mxd = arcpy. ...

  9. laravel-mix 热重载404的问题

    在项目中,使用npm run hot时,无法加载 http://localhost:8080/js/app.js 以及 http://localhost:8080/css/app.css 版本 Lar ...

  10. watir 的api在线文档

    http://rubydoc.info/gems/watir-webdriver/frames http://rdoc.info/gems/watir-webdriver/frames http:// ...