这两天再看hibernate,就自己总结了hibernate对jdbc的封装过程。

1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.通过config.buildSessionFactory();//创建SessionFactory
4.sessionFactory.openSession();//打开Sesssion
5.session.beginTransaction();//创建事务Transation
6.persistent operate持久化操作
7.session.getTransaction().commit();//提交事务
8.关闭Session

9.关闭SesstionFactory

这里是没有使用配置文件,手写的文件:

public int updateDm_bm(String str){   int resu=0;   //获取会话工厂   SessionFactory sf=this.getSessionFactory();   //获取SessionFactory的会话。SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象   Session session=(Session)this.getSessionFactory().getCurrentSession();   sf.openSession();   //开始事务   Transaction t=session.beginTransaction();   Query query =session.createQuery(str);   //提交事务   resu=query.executeUpdate();   // Query.executeUpdate()方法返回的整型值表明了受此操作影响   return resu;   }

其实我的IDE是Myeclipes的里面有自动生成hibernate文件的工具。仔细的看看系统自动生成的代码:

配置文件:

<hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.url"> jdbc:mysql://10.5.110.239:3306/test </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="myeclipse.connection.profile">root</property> <property name="connection.password">chen</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <mapping resource="DAO/User.hbm.xml" /> </session-factory> </hibernate-configuration>映射文件: <hibernate-mapping> <class name="DAO.User" table="user" catalog="test"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="assigned" /> </id> <property name="username" type="java.lang.String"> <column name="username" length="32" /> </property> <property name="password" type="java.lang.String"> <column name="password" length="32" /> </property>POJO文件和DAO文件: public void save(User transientInstance) { log.debug("saving User instance"); try { getSession().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } }SessionFactory和Session类文件:就是建立加载配置文件,数据库连接,打开事务等操作: public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); } return session; }

Hibernate工作原理(1)相关推荐

  1. struts2、hibernate工作原理和流程

    2019独角兽企业重金招聘Python工程师标准>>> struts2原理 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Control ...

  2. Hibernate工作原理

    现在我们知道了一个概念Hibernate Session,只有处于Session管理下的POJO才具有持久化操作能力.当应用程序对于处于Session管理下的POJO实例执行操作时,Hibernate ...

  3. Struts1、Struts2、Hibernate、Spring框架工作原理介绍

    Struts1工作原理 Struts1工作原理图 1 .初始化: struts 框架的总控制器 ActionServlet 是一个 Servlet ,它在 web.xml 中配置成自动启动的 Serv ...

  4. Hibernate执行原理总结

    hibernate工作原理 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件. 2.由hibernate.cfg.xml中的< ...

  5. Struts1工作原理

    Struts1工作原理图 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(st ...

  6. java ssh实现原理_SSH三大框架的工作原理及流程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Hibernate工作原理及为什么要用? 原理 通过Configuration().configure();读取并解析hibernate.cfg.xml配 ...

  7. SSH框架笔记_SSH三大框架的工作原理及流程

    Hibernate工作原理及为什么要用? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg ...

  8. Hibernate的工作原理

            Hibernate的工作原理 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.c ...

  9. Hibernate的发展和特点以及Hibernate的工作原理简介

    1.Hibernate的发展和特点: (1).Hibernate介绍:Hibernate是封装了JDBC的一种开放源代码的对象/关系映射(ORM Object-Relatiion Mapping)框架 ...

最新文章

  1. javax.net.ssl.SSLHandshakeException(Cas导入证书)
  2. pandas将某一列变为索引_Pandas 基础语法入门
  3. polkit 重新安装_不折腾,为U-NAS安装一个清爽的桌面,把小U打造成双面高手
  4. 0113——代理模式
  5. 如何运行python代码将各个表格的信息集合在一起_如何利用Python编程批量处理Excel来提高日常工作效率!...
  6. linux下mkdir出现mkdir(): File exists错误
  7. VSCode配置编译MSVC程序
  8. 为项目选择的python解释器无效_尝试使PyCharm正常工作,并不断获取“未选择Python解释器”...
  9. 【BUUCTF】[Zer0pts2020]Can you guess it?
  10. 阿里物联网云平台搭建(一)
  11. 如何在手机浏览器wap网页中点击链接跳转到微信界面
  12. dede判断字段是否为空
  13. c语言社团管理系统实验报告,C语言课程设计大学社团管理系统
  14. 【STM32Cube】学习笔记(二):超声波传感器
  15. 简单的使用css画勾、叉、三角、大于号
  16. Avamar 10007报错解决
  17. 【09】FreeRTOS的时间片调度
  18. Linux下文件解压缩、软件安装
  19. 光纤收发器怎么连接?光纤收发器连接方式解析
  20. BZOJ4627 回转寿司 值域线段树

热门文章

  1. 1211笔记关于//modal//更改窗口的根控制器//数据存取//Plist属性列表//-“沙盒机制”//plis属性列表//偏好设置//归档普通对象//联系人数据存储//协议与回调函数...
  2. ASP.NET - MVC框架及搭建教程
  3. c#使用System.Windows.Forms.DataVisualization.Charting.dll绘制图表实例
  4. C# FolderBrowserDialog 的用法
  5. iOS实现经典登录页面,手机号自动格式化
  6. IOS pushViewController如何去隐藏tabbar
  7. 关于使用Nginx服务器发布静态网页或者代理
  8. 测试无数据_fpc柔性线路板压合辅材的测试方法
  9. C#中类与结构体的区别
  10. Jlink接口的Jtag和SWD接口定义