前言ORM框架并不是一个新话题,它已经伴随我们很多年了。它提供了一个概念化且易于理解的数据模型,并在数据库中的表和内存中的对象之间建立了良好的映射关系。Java中常用的ORM框架主要有两个:Hibernate和iBatis。本文主要介绍如何使用Hibernate,后面会出一篇介绍iBatis的文章。传统MVC开发模式?M:模型包括pojo、service、dao。V:View包括jsp、html、模块引擎。C:Controll包含了我们的动态网络资源技术:Servlet。?SSH框架在开发中的作用?S:Struts/SpringMVC:其实就是解决了我们controller的问题(简单的可以看成是对Servlet的封装)。Spring:集成其余的第三方框架,就是为Service层提供事务。Hibernate:其实就是DAO层的Solution。?同时可以看看其他框架(SSM、SSS)的含义:什么是Hibernate1.Hibernate是一个非侵入式的ORMapping框架非侵入式框架:我们在使用这个框架的时候,不需要在框架中继承或实现这个类或接口。这种类型的框架称为非侵入式框架。使用非侵入式框架时,最好实现与原有框架的解耦。侵入式框架:我们在使用这个框架的时候,需要继承或者实现这个框架中的某些类或者接口,这个框架就叫做侵入式框架2.ORMapping解析O:ObjectR:RelationM:Mapping映射a.Hibernate可以映射Java对象通过映射关系到数据库b.Hibernate可以通过映射关系将数据库数据映射到Java对象。Hibernate是一种可以通过操作Java对象来操作数据库的技术。Hibernate能做什么简单的说:实现对数据库的所有操作(CRUD)是对原有DAO层的一种解决方案和替代。简单使用Hibernate《简单使用:》引导包,将下载的required+jpa相关包打成文件,在src下创建hibernate.cfg.xml配置文件com.mysql.jdbc.Driverjdbc:mysql:///qianyurootrootorg.hibernate。dialect.MySQL5Dialectcom.mysql.jdbc.Driverjdbc:mysql:///qianyurootrootorg.hibernate.dialect.MySQL5Dialectupdatetruetrue-->Hibernate的xxx.hbm.xml配置文件详解Hibernate中CRUD的实现添加数据session.save(user);session.persist(user);修改数据会话。beginTransaction();//查询数据(主动加载)Useruser=session.get(User.class,1);//下面支持延迟加载user.setUserName("xxxxx");user.setUserPwd("yyyyy");session.getTransaction().commit();Dataquery//查询数据(主动加载)Useruser=session.get(User.class,1);//Useruser2下面支持懒加载=session.load(User.class,1);删除数据//查询数据(主动加载)Useruser=session.get(User.class,1);session.delete(用户);休眠e中helper类的编写publicclassHibernateUtils{privatestaticConfigurationcfg=null;privatestaticSessionFactorysf=null;privatestaticThreadLocalthreadLocal=null;static{//初始化线程局部变量threadLocal=newThreadLocal();//加载配置文件cfg=newConfiguration().configure("config/hibernate.cfg.xml");//生成我们的工厂sf=cfg.buildSessionFactory();}/***如何获取session*@Title:getSession*@Description:TODO*@param:@return*@return:Session*@throws*/publicstaticSessiongetSession(){Sessionsession=threadLocal.get();if(null==session){session=sf.openSession();session.beginTransaction();threadLocal.set(session);}returnssession;}/***关闭会话*@Title:close*@Description:TODO*@param:*@return:void*@throws*/publicstaticvoidclose(){Sessionsession=threadLocal.get();if(null!=session){session.getTransaction().commit();session.close();threadLocal.remove();}}}注意事项这在我们的hibernate.cfg.xml配置文件中包含了hibernate。可以省略。为什么不开启交易也能查询到数据?这是因为Hibernate默认有一个只读事务,只读事务可以完成读取数据的操作。如果要完成增删改查,那么需要读写事务。这时候,你需要开启交易。Save和Persist的区别。存数据的时候,如果id是自增的,你给不给id都是对的。Persist保存数据时,如果id是自增的,给id会报错。结语关于Hibernate的文章到此为止,后续会陆续发布更多关于Hibernate系列的文章,感谢大家的支持!