欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

Hibernate教程从入门到精通第二篇共四篇

  • 资源ID:196990422       资源大小:444.50KB        全文页数:21页
  • 资源格式: PPT        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

Hibernate教程从入门到精通第二篇共四篇

1目标:Hibernate API23SessionFactorySessionFactory:它保存了对当前数据库配置的所有映射关系,它是将某个数据库的映射关系经过编译之后全部保存在内存中的。它还是生成Session的工厂,它在进行实例化的过程中将会用到ConnectionProvider。一个SessionFactory对应一个数据库连接,当数据库连接改变时需要修改SessionFactory SesionSesion:是进行持久化操作的基础,所有的持久化操作都是在Session的基础上进行的。它相当与JDBC中的Connection。它是Hibernate的持 久化管理器的核心,提供了一系列的持久化操作方法。另外,它还持有一个针对持久化对象的一级缓存,在遍历持久化对象或者根据持久化标识查找对象的时候会用 到。TransationTransation:功能上和数据库中的事务完全一样,通过它实现对数据库中事务的控制。Transation对象是Session对象产生的,所以他的生命周期比Session短。一个Session的生命周期中可以有多个Transaction对象。ConnectonProviderConnectonProvider:主要作用是生成与数据库建立了连接的JDBC对象,同时他还作为数据库连接的缓冲池。通过ConnectionProvider实现了应用程序和底层的DataSource和DriverManager的隔离。TransactionFactoryransactionFactory:是生成Transaction对象的工厂,通过TransactionFactory实现了事务的封装,使其具体的实现方法与应用程序无关。4Configuration 接口:配置Hibernate,根启动Hibernate,创建sessionFactory对象。Query和Criteria 接口:执行数据库查询.5创建Hibernate 的配置文件。创建持久化类创建对象-关系映射文件通过Hibernate API 访问数据库的代码67JavaBean implements Serializable8 9 name(可选):标识属性的名字。type(可选):标识Hibernate类型的名字。column(可选-默认为属性名):主键字段的名字。unsaved-value(可选-默认为一个切合实际(sensible)的值):一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。这可以把这种实例和从以前的session中装载过(可能又做过修改-译者注)但未再次持久化的实例区分开来。access(可选-默认为property):Hibernate用来访问属性值的策略。10111)Increment标识符生成器 HIbernate会以自增的方式生成标识符,事实上是在hibernate的初始化阶段读取将要操作的表中的最大的ID(select max(ID)from tableName),在向数据库中插入记录时再在此基础上递增。这样就会存在并发的问题:如果同时有两个hibernate进程读取了这个最大值(假设为100),在向数据库中插入数据的时候都会想插入ID为101的记录,这样就违反了数据库的约束。这个问题只要是存在两个sessionFacotry就会发生,不能在集群下使用。优点:生成标识符的机制不依赖于底层数据库,适用于所有的数据库系统。122)Identity标识符生成器 identity标识符生成器由底层数据库来负责生成标识符,它要求底层数据库把主键定义为自动增长字段类型,比如在MySql中应为auto_increment,SQL Server中为identity。优缺点:必须依赖于底层数据库。133)sequence标识符生成器 sequence标识符生成器利用底层数据库提供的序列来生成标识符(需要在数据库中创建一个序列)。144)Native标识符生成器 native标识符生成器依据底层数据库对自动生成标识符的支持能力,来选择适用identity,sequence,hilo标识符生成器。native能自动判读底层数据库提供的生成符机制,如果为MySQL和SQL Server为identity,如果数据库为Oracle则为sequence。5)assigned标识符生成器 由程序指定OID。1516name:属性的名字,以小写字母开头。column(可选-默认为属性名字):对应的数据库字段名。也可以通过嵌套的元素指定。type(可选):一个Hibernate类型的名字。update,insert(可选-默认为 true):表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。这二者如果都设置为false 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个)字段的某些其他属性,或者通过一个trigger(触发器)或其他程序生成。formula(可选):一个SQL表达式,定义了这个计算(computed)属性的值。计算属性没有和它对应的数据库字段。access(可选-默认值为 property):Hibernate用来访问属性值的策略。lazy(可选-默认为 false):指定 指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)(需要运行时字节码增强)。unique(可选):使用DDL为该字段添加唯一的约束。同样,允许它作为property-ref引用的目标。not-null(可选):使用DDL为该字段添加可否为空(nullability)的约束。optimistic-lock(可选-默认为 true):指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。generated(可选-默认为 never):表明此属性值是否实际上是由数据库生成的1718Properties p=configuration.getProperties();System.out.println(-+p);p.put(hibernate.default_schema,newSchema);sessionFactory=configuration.buildSessionFactory();之间加上 create 19SaveUpdateDeleteLoadfind20(1 1)瞬态)瞬态:表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的数据库中的数据没有任何的关联关联即,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。瞬态实体的特征有:与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录 与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。(2 2)持久态)持久态:指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被作都将被HibernateHibernate持久化到数据库中。持久化到数据库中。处于持久态的对象具有的特征为:每个持久态对象都于一个Session对象关联 处于持久态的对象是于数据库中的记录相关联的 Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录(3 3)游离态)游离态:处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。游离态对象的特征有:游离态对象一定是由持久态对象转换而来 游离态实体不再于Session关联 游离态实体对象与数据库中的数据没有直接联系,主要表现在对其进行的修改不再影响到数据库中的数据 游离态实体对象在数据库中有相应的数据记录(如果该记录没有被删除)21判断一个实体对象是否处于瞬态:判断一个实体对象是否处于瞬态:该实体对象的属性(如果存在)的值为空 如果在映射文件中为设置了unsaved-value属性,并且实体对象的id属性的值与unsaved-value属性的值相同 如果这个实体对象配置version属性,并且version属性的空 在映射文件中为version属性设置了unsaved-value属性,并且version属性的值与unsavedvalue属性的值相同。如果设置了interceptor,并且interceptor的isUnsaved()方法的返回值为true满足上述条件的实体对象就处于瞬态,否则为游离态(前提是不处于持久态)

注意事项

本文(Hibernate教程从入门到精通第二篇共四篇)为本站会员(无***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!