Hibernate编程常用API.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Hibernate编程常用API介绍Hibernate实现单表CRUD操作通过Hibernate框架操作数据库,需要使用Hibernate框架提供的类及方法,解析配置文件,操作JavaBean对象,从而操作数据库本节介绍Hibernate框架常用API▪即Hibernate编程涉及的常用的类、接口以及方法等Configuration类提供了configure方法,用来读取指定的Hibernate配置文件▪configure方法不指定参数,表示读取默认路径下的hibernate.cfg.xml文件Configurationcf=newConfiguration();cf.configure();SessionFactory是Session对象的工厂类,负责创建Session对象,可通过Configuration对象获得SessionFactory对象封装了hibernate.cfg.xml配置文件信息,并缓存了映射文件信息以及预定义的SQL语句等Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Session对象通过SessionFactory对象获得在Hibernate中,一个Session对象类似一个数据库连接对象,通过Session对象操作持久化对象(JavaBean),如创建、读取、删除等,从而操作与该持久化对象对应的数据库表记录Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();提示Hibernate编程中Session和JavaWeb中的HttpSession没有任何关系save(Objectobj)▪该方法将一个对象进行保存操作,生成insertSQL语句,向数据库表中插入一条记录update(Objectobj)▪该方法对一个对象进行修改操作,生成updateSQL语句,修改数据库表中的对应记录12delete(Objectobj)▪该方法对一个对象进行删除操作,生成deleteSQL语句,删除数据库表中的对应记录Objectget(Classclazz,Serializableid)▪该方法通过id查询得到一个对象,生成一条select语句,通过id主键值进行查询,将返回的结果记录封装成一个对象返回34Hibernate编程,通过Session对象进行增删改等操作,必须使用Session对象开始一个事务,操作完成后需提交(commit)事务以下两种写法等价:Transactionts=session.beginTransaction();….ts.commit();session.beginTransaction();….session.getTransaction.commit();示例:针对学生表,实现:添加、编辑、删除和获取示例数据文件:data1示例:说明:示例所操作数据表不涉及关联信息Hibernate_CRUDDemoStudentstu=newStudent();stu.setNumber(“1001”);..//省略其它属性设置Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransaction();session.save(stu);session.getTransaction.commit();session.close();Studentstu=newStudent();stu.setId(1);stu.setNumber(“1001”);..//省略其它属性设置Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransaction();session.update(stu);session.getTransaction.commit();session.close();Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransaction();Studentstu=(Student)session.get(Student.class,1);session.getTransaction.commit();session.close();Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransaction();Studentstu=(Student)session.get(Student.class,1);session.delete(stu);session.getTransaction.commit();session.close();通过Hibernate_CRUDDemo示例,了解Hibernate编程的特点及其与传统JDBC编程的重大区别Hibernate编程特点Hibernate编程:Session对象操作JavaBean对象,通过对象-关系映射文件,再进一步操作数据库改进获取SessionFactory对象的方式改进获取Session对象的方式SessionFactory对象是一个重量级对象▪封装了hibernate.cfg.xml配置文件信息,并缓存了映射文件信息以及预定义的SQL语句等▪占用很大的缓存空间,其创建很消耗内存通常,针对一个数据库,程序中只需在启动时创建一个SessionFactory实例对象示例Hibernate_CRUDDemo示例:每次都创建一个新的SessionFactory实例对象参考Hibernate开发文档入门示例提供的HibernateUtil类▪HibernateUtil辅助类用以生成全局唯一的SessionFactory对象▪保证程序中只生成SessionFactory类的一个对象实例:单例模式程序通过HibernateUtil类获取SessionFactory对象示例Hibernate_CRUDDemo2Hibernate_CRUDDemo示例获取Session对象方式:利用SessionFactory对象openSession方法▪每次数据库操作都创建一个新的Session实例对象参考开发文档入门示例获取Session对象的方式:▪利用SessionFactory对象的getCurrentSession方法▪getCurrentSession方法获取当前线程可用的Session对象,有直接使用,没有再创建新的提醒1hibernate.cfg.xml文件中需要添加以下配置:propertyname=current_session_context_classthread/property程序中使用getCurrentSession方法提醒2Session提交事务时,会自动关闭Session对象程序中不要再自己关闭Session对象:程序中如果使用getCurrentSession方法SessionFactorysf=HibernateUtil.getSessionFactory();Sessionsession=sf.getCurrentSession();session.beginTransaction();…..session.getTransaction.commit();//session.close();此句不需要,session已关闭,为空对象再调用会报错执行此句之后,会自动关闭Session对象示例:说明:该示例重新实现Hibernate_CRUDDemo,改进获取SessionFactory对象以及Session对象的方式Hibernate_CRUDDemo2示例中对象-关系映射采用XML文件配置形式▪示例Student.hbm.xml文件▪XML映射文件的编写比较繁琐Hibernate还可以通过“注解”(Annotation)方式,生成对象-关系映射,替代XML映射文件本小节通过“注解”生成对象-关系映射,重新实现HibernateDemo2Hibernate实际开发,配置对象-关系映射的方式有两种:▪采用XML文件形式▪采用“注解”形式目前:掌握XML文件形式,了解注解形式今后:两者都掌握参考Hibernate注解文档示例:说明:该示例重新实现Hibernate_CRUDDemo2,利用“注解”替代Student.hbm.xml示例采用的是JPA注解:▪JavaPersistenceAPIHibernate_CRUDDemoAnnotationJPA全称JavaPersistenceAPI,JPA通过JDK注解或XML文件描述对象-关系表的映射关系,并将实体对象持久化到数据库中JPA由SUNEJB3专家组开发,其宗旨是为POJO(简单JavaBean对象)提供对象持久化标准和规范▪JPA是一套接口和标准▪Hibernate等常用ORM框架产品提供了JPA实现@Entity@Table(name=student)publicclassStudent{@Id@column(name=“id”)@GeneratedValueprivateintid;@Column(name=xm)privateStringname}}@Entity@Table(name=student)publicclassStudent{@Id@column(name=“id”)@GeneratedValueprivateintid;@Column(name=xm)privateStringname}}@Entity注解:指定Student是一个持久化类@Table注解:指定Student类映射的表,如不指定,表名默认采用类名@Id注解:指定Student类的标识符属性@column注解:指定属性对应的表字段,如不指定,字段名默认采用属性名@GeneratedValue注解:指定主键生成方式,此处根据数据库自身能力选择合适生成方式@column注解:指定属性对应的表字段,如不指定,字段名默认采用属性名@Entity,@Table注解放在类名之上针对属性的注解▪可以放在“属性”上▪也可以放在属性的getter方法上核心提示JPA注解所用类位于javax.persistence包下,别加错核心提示采用”注解”替代XML映射文件,hibernate.cfg.xml需要加入类路径mappingclass=po.Student/类的完整路径掌握Hibernate编程常用API掌握Hibernate实现单表CRUD的基本步骤和用法掌握XML文件配置对象-关系映射了解JPA注解实现对象-关系映射

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功