`

Hibernate基本知识(一)

 
阅读更多

1、 Hibernate的开发流程

<1>、由Domain objectàmappingàdb(官方推荐)

<2>、由DB开始,用工具生成mapping Domain object(使用很多)

<3>、由映射文件开始。

2、 Domain Object限制

<1>、默认的构造方法(必须的)

<2>、有无意义的标示符id(主键)(可选)

<3>、非final的,对懒加载有影响(可选)

例如:

publicclass User {

intid;

String name;

Date birthday;

getter/setter……

}

3、 Hibernate中持久化类需要遵循四条主要的规则(对第二条的补充)

<1>、为属性字段声明setter和getter方法:Hibernate默认使用protected或private的get/set方法对,字段不需要声明为public。

<2>、实现一个默认的无参构造方法(constructor):所有的持久化类都必须有一个默认的构造方法(可以不是public),这样Hibernate就可以使用Constructor.newInstance()来实例化它们了。

<3>、提供一个标识属性(identifier property):该属性映射数据库表的主键字段。该属性可以叫任何名字,其类型可以是任何原始类型、原始类型的包装类型、String或者Date。标识符属性是可选的。

<4>、使用非final的类:代理是Hibernate的一个重要的功能,它依赖的条件是,持久化类要么是非final的,要么实现一个所有方法都声明为public的接口。

4、 Hibernate映射文件就是用于说明java对象与哪个表中的记录相对应,以及java对象中的各个属性分别对应表中的哪一列,不同性质的属性(例如,主键和普通属性)用不同的标签来映射,如果java对象中的某个属性不需要存储在数据库中,那么在Hibernate映射文件就不需要配置这个属性!

5、 域模型的配置文件

<?xmlversion="1.0"?>

<hibernate-mapping

package="com.fei.hibernate.domain">

<classname="User" table=”user”>

<idname="id" column=”id”>

<generatorclass="native"/>//主键id是通过此标签产生的

</id>

<propertyname="name"></property>

<propertyname="birthday"/>

</class>

</hibernate-mapping>

6、 大家也可以这么简单理解,由于Session可以管理多个数据库表所对应的多个实体对象,如果要查询id1的实体对象,Session.get()方法需要知道去从哪个数据库表中查询id1的记录,所以,除了给get方法传递所要查询的实体对象的id值外,还必须给get方法传递实体对象的类型,get方法才能知道去哪个数据库表中进行查询!

7、懒加载load()get()的区别:

load()方法是在加载一个对象的时候自己产生了一个本类的子类对象,所以加载的对象不可能为null,它是在第一次使用的时候才会去访问数据库。

get()方法是在访问时直接去数据库取数据,不会产生代理对象。

8、 save()persist()方法的区别:

save()方法是在没有事务的时候,是先将数据插入数据库再回滚删除了数据;

persist()方法在没有事务的时候,是不会将数据插入数据库的(即不会产生insert语句),直接回滚删除了数据。

但在有事务的时候,两者的功能相同。

9、 evict方法和lock方法的用法:

evict方法可以将session中的某对象清除出session,如session.evict(emp)。

lock方法可以加上某种形式的锁以便更新或读写,如session.lock(emp, LockMode.UPGRADE)。

merge()方法是将游离对象变为持久对象的方法

分享到:
评论

相关推荐

    hibernate基本知识点

    hibernate基本知识点,里面有关于hibernate的配置说明,hibernate的讲解

    StrutsSpringHibernate基本知识

    StrutsSpringHibernate基本知识,清楚易懂

    java基础入门之Hibernate 入门

    Hibernate 入门知识

    hibernate入门必看

    hibernate最基础知识 入门必学 很全面

    hibernate4知识点及配置说明

    hibernate4基本知识点,常见问题解决方案,基本配置注意事项

    hibernate基本架构

    文档阐述了hibernate基本架构的使用,可以作为hibernate学习的基础知识

    Hibernate 中文API文档

    本章是面向Hibernate初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解的方式逐步开发。 本章面向Hibernate初学者,但需要Java和SQL知识。它是在Michael ...

    hibernate中文开发手册

    本章是面向Hibernate初学者的一个入门教程。我们从一个使用驻留内存式(in-memory)数据库的简单命令行应用程序开始, 用易于理解的方式逐步开发。 本章面向Hibernate初学者,但需要Java和SQL知识。它是在Michael ...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    Hibernate入门

    Hibernate入门,介绍了Hibernate的应用和基础知识,希望大家会喜欢,谢谢

    Hibernate数据检索(HQL)笔记

    魔乐科技,李兴华老师的Hibernate教程笔记,对Hibernate的基础知识进行了比较详细的讲解,对初学者有一个比较笼统的介绍,是带我们入门Hibernate的不二选择。

    hibernate 培训讲义

    hibernate 基础知识,对快速入门很有帮助

    Hibernate3开发.pdf

    系统学习Hibernate3的开发知识,循序渐进 第一章:Hibernate入门 包括:是什么、ORMapping原理、能干什么、有什么、怎么做(做什么) ... 包括:分增删改查的操作说明Hibernate基本的实现原理 第八章:最佳实践

    Struts,Hibernate,Spring集成开发宝典.pdf

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    Hibernate介绍ppt

    介绍很全的 Hibernate PPT,基本上知识点涉及很全

    Struts+Spring+Hibernate开发实例 (SSH整合)

    本文并不想介绍Struts,Spring,...本文对读者假设已经具备了以上框架的基础知识。以及那些已经了解Struts,Spring,Hibernate的基本概念,但是还没有亲身在较复杂的项目中体验Struts+Spring+Hibernate的开发人员。

    spring4.1.6+hibernate4.3.9+struts2.3.20整合

    一、 项目名称:ssh 项目原型:Struts2.3.20 + Spring4.1.6 + Hibernate4.3.9 ...同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。

    struts2 spring hibernate框架技术与项目实战 光盘源码

    详细讲解了S2SH框架技术的基本知识和使用方法,从Eclipse开发平台、JSP、Servlet等基础知识讲起,由浅入深,重点介绍了当前流行的三个轻量级开源框架:Struts2、Spring和Hibemate.

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL  ...附录A SQL基础知识  附录B 映射快速参考

Global site tag (gtag.js) - Google Analytics