您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > hibernate笔记总结_sdh
欢迎下载韩顺平老师的PHP视频教程,详情查看hibernate是什么?1.hibernate是一个框架(framework)2.hibernate是一个orm框架[]orm(objectrelationmapping)对象关系映射框架oobject-业务层(只对对象操作)rrelation-关系数据库mmapping对象关系映射文件3.hibernate处于我们项目的持久层位置(正因为如此,所以有人又把hibernate称为持久层框架)4.hibernate实际上就是对jdbc进行了轻量级的封装.5.hibernate的基础还是我们java反射机制除了hiberante这个orm框架,还有一些:apacheojb/toplink/ibatis/ejbcmpApacheOJB()Cayenne()Jaxor()Hibernate()iBatis()jRelationalFramework()mirage()SMYLE()TopLink()把对象持久化:把对象的信息保存到数据库或者是文件.总结:hibernate是对jdbc进行轻量级封装的orm框架,充当项目的持久层.为什么需要hibernate?快如入门案例:hiberante可以用在j2se项目,也可以用在j2ee(web项目中)struts是web框架,所以用在web项目我们使用手动配置hibernate方式开发一个hibernate项目,完成crud操作。欢迎下载韩顺平老师的PHP视频教程,详情查看开发包(从网上下载googlehibernate),完后我们4.开发hibernate有三种方法(开发顺序)我们使用第二种开发项目创建employe表.createtableemployee(idnumberprimarykey,namevarchar2(64)notnull,emailvarchar2(64)notnull,hiredatedatenotnull)创建一个序列,将来用于主键的自增长:--创建一个序列createsequenceemp_seqstartwith1incrementby1minvalue1nomaxvaluenocyclenocache5.开发domain对象和对象关系映射文件对象关系映射文件:作用是用于指定domain对象和表的映射关系.,该文件的取名有规范:domain对象.hbm.xml,一般我们放在和domain对象同一个文件夹下(包下)我们的Employee.hbml.xml配置文件:!DOCTYPEhibernate-mappingPUBLIC-//Hibernate/HibernateMappingDTD3.0//EN=com.hsp.domainclassname=Employeetable=employee!--id元素用于指定主键属性--idname=idcolumn=idtype=java.lang.Integer!--该元素用于指定主键值生成策略hilonativeincrementsequenceuuid--generatorclass=sequenceparamname=sequenceemp_seq/param/generator/id欢迎下载韩顺平老师的PHP视频教程,详情查看!--对其它属性还有配置--propertyname=nametype=java.lang.Stringcolumnname=namenot-null=false//propertypropertyname=emailtype=java.lang.Stringcolumnname=emailnot-null=false//propertypropertyname=hiredatetype=java.util.Datecolumnname=hiredatenot-null=false//property/class/hibernate-mapping6.手动配置我们的hibernate.cfg.xml文件,该文件用于配置连接的数据库的类型,driver,,用户名,密码,url....同时管理对象关系映射文件,该文件的名称,我们一般不修改.hibernate.cfg.xml配置文件?xmlversion=1.0encoding=utf-8?!DOCTYPEhibernate-configurationPUBLIC-//Hibernate/HibernateConfigurationDTD3.0//EN!--hibernate设计者,给我们提供了一写常用的配置--!--配置使用的driver--propertyname=connection.driver_classoracle.jdbc.driver.OracleDriver/propertypropertyname=connection.usernamescott/propertypropertyname=connection.passwordtiger/propertypropertyname=connection.urljdbc:oracle:thin:@127.0.0.1:1521:orclhsp/property!--配置dialect方言,明确告诉hibernate连接是哪种数据库--propertyname=dialectorg.hibernate.dialect.OracleDialect/property!--显示出对于sql--propertyname=show_sqltrue/property!--指定管理的对象映射文件--mappingresource=com/hsp/domain/Employee.hbm.xml//session-factory/hibernate-configuration7.测试文件TestMain.javapackagecom.hsp.view;importcom.hsp.util.*;importjava.util.Date;欢迎下载韩顺平老师的PHP视频教程,详情查看*;importcom.hsp.domain.Employee;publicclassTestMain{/***@paramargs*/publicstaticvoidmain(String[]args){//查询[load]-hql语句(hibernatequerylanguage)}publicstaticvoiddelEmp(){//删除//获取一个sessionSessionsession=MySessionFactory.getSessionFactory().openSession();Transactionts=session.beginTransaction();//删除1.先获取该雇员,然后删除Employeeemp=(Employee)session.load(Employee.class,3);session.delete(emp);ts.commit();session.close();}publicstaticvoidupdateEmp(){//TODOAuto-generatedmethodstub//修改用户//获取一个会话Sessionsession=MySessionFactory.getSessionFactory().openSession();Transactionts=session.beginTransaction();//修改用户1.获取要修改的用户,2.修改//load是通过主键属性,获取该对象实例.---表的记录对应Employeeemp=(Employee)session.load(Employee.class,3);emp.setName(韩顺平8);//update...emp.setEmail(abc@sohu.com);ts.commit();session.close();欢迎下载韩顺平老师的PHP视频教程,详情查看}publicstaticvoidaddEmployee(){//我们使用hibernate完成crud操作[这里我们只见对象,不见表]//现在我们不是用service,直接测试.//1。创建Configuration,该对象用于读取hibernate.cfg.xml,并完成初始化Configurationconfiguration=newConfiguration().configure();//2.创建SessoinFactory[这是一个会话工厂,是一个重量级的对象]SessionFactorysessionFactory=configuration.buildSessionFactory();//3.创建Sessoin相当于jdbcConnection[serveltHttpSession,也不是jspsession]Sessionsession=sessionFactory.openSession();//4.对hiberate而言,要求程序员,在进行增加,删除,修改的时候使用事务提交,Transactiontransaction=session.beginTransaction();//添加一个雇员Employeeemployee=newEmployee();employee.setName(shunping);employee.setEmail(shunping@sohu.com);employee.setHiredate(newDate());//insert.............//保存session.save(employee);//saveemployee就是持久化该对象(把对象保存到了数据库中称为一条记录)//==insertinto....[被hiberante封装]//提交transaction.commit();session.close();}}现在我们体验一下hibernate切换数据库的优势.这次,我们使用让hibernate自动完成domain-映射文件-表的工作.1.首先我们把hibernate.cfg.xml文件重新配置.?xmlversion=1.0encoding=utf-8?!DOCTYPEhibernate-configurationPUBLIC-//Hibernate/HibernateConfigurationDTD3.0//EN
本文标题:hibernate笔记总结_sdh
链接地址:https://www.777doc.com/doc-6245135 .html