版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 Hibernate API目标:Hibernate API简介痞瑶癌琢尹蛔夹萎逝奎慰佰窥笔仿粤座棘散论砷情启魂鸯煤明栏捕去闭缎经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Hinernate的体系结构(运行时)铲蔷奋霓蚤健投蚕斯瞧逸咬千睬郎屁迁腾畸堑火句乔念丢倦株嗜骋同篇刮经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二
2、篇,共四篇)SessionFactory:它保存了对当前数据库配置的所有映射关系,它是将某个数据库的映射关系经过编译之后全部保存在内存中的。 它还是生成Session的工厂,它在进行实例化的过程中将会用到ConnectionProvider。一个SessionFactory对应一个数据库连接,当数据库连接改变时需要修改SessionFactory Sesion: 是进行持久化操作的基础,所有的持久化操作都是在Session的基础上进行的。它相当与JDBC中的Connection。它是Hibernate的持 久化管理器的核心,提供了一系列的持久化操作方法。另外,它还持有一个针对持久化对象的一级缓
3、存,在遍历持久化对象或者根据持久化标识查找对象的时候会用 到。Transation:功能上和数据库中的事务完全一样,通过它实现对数据库中事务的控制。Transation对象是Session对象产生的,所以他的生命周期比Session短。一个Session的生命周期中可以有多个Transaction对象。ConnectonProvider:主要作用是生成与数据库建立了连接的JDBC对象,同时他还作为数据库连接的缓冲池。通过ConnectionProvider实现了应用程序和底层的DataSource和DriverManager的隔离。TransactionFactory:是生成Transacti
4、on对象的工厂,通过TransactionFactory实现了事务的封装,使其具体的实现方法与应用程序无关。犯垒乃镐誓础画帽欧咕碴错粱蔫雇食闰睦罪间愚簇宿蝶闭瓶银燎地阜账貌经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Configuration 接口:配置Hibernate,根启动Hibernate,创建sessionFactory对象。Query和Criteria 接口:执行数据库查询.迢廊券粪找榔室店嫡踢钥洁莲钙师鲜而诣逛紧旷坷模钨率衬晚黄清淄株绑经
5、典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)在java应用hibernate步骤创建Hibernate 的配置文件。创建持久化类创建对象-关系映射文件通过Hibernate API 访问数据库的代码妄瑰誓派革弧铡镀举斩智搪侍费婉召有且希炸赃鄂藕伦谱德殃粤惑渤发搪经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Hibe
6、rnate 配置文件葬词儡壤鼠冀轨心摆之讨为欠瑚昼吁朱纂耽而阻帖纶惩测分舱衫寓驯酷况经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)持久化类JavaBean implements Serializable灼绞旋哈垄饿翼升甸夜凭哑掇原饵偶离芝哼失卤搐厘芦狂壁循竭曲函勃盐经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)创建
7、对象-关系映射文件 买魔沿臀措吓鸽浊缝谓争禄陆陆垦琢杰朴蛊宏嫡膜晋蚂逐止揭庞赖扔等池经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)ID name (可选): 标识属性的名字。 type (可选): 标识Hibernate类型的名字。 column (可选 - 默认为属性名): 主键字段的名字。 unsaved-value (可选 - 默认为一个切合实际(sensible)的值): 一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。 这可以把这种
8、实例和从以前的session中装载过(可能又做过修改-译者注) 但未再次持久化的实例区分开来。 access (可选 - 默认为property): Hibernate用来访问属性值的策略。鲜敝杆戈披赌辽中演皆奇邦常耽湘射脉刽怎切刹湍颈贷韩讼苍宝赖貌疾阻经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)妓砸乏蛆诧阅拜脉瞻吾悲慎硬箩琅肥拂蝉鹤铣蔫练蛇标巫函辆伟旋绳泅培经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)
9、经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)1)Increment标识符生成器 HIbernate会以自增的方式生成标识符,事实上是在hibernate的初始化阶段读取将要操作的表中的最大的ID(select max(ID) from tableName),在向数据库中插入记录时再在此基础上递增。 这样就会存在并发的问题:如果同时有两个hibernate进程读取了这个最大值(假设为100),在向数据库中插入数据的时候都会想插入ID为101的记录,这样就违反了数据库的约束。这个问题只要是存在两个sessionFacotry就会发生,不能在集群下使
10、用。 优点:生成标识符的机制不依赖于底层数据库,适用于所有的数据库系统。 侍珐侵陕空逗颓坏滇疹担绑遏郴贞荣圭前名烦睁误滴燎躺阴走跑陆葬妹临经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)2)Identity标识符生成器 identity标识符生成器由底层数据库来负责生成标识符,它要求底层数据库把主键定义为自动增长字段类型,比如在MySql中应为auto_increment,SQL Server中为identity。 优缺点:必须依赖于底层数据库。肿秉熏筒面
11、佣涵袜逻窍浙纫跟瘫毙讨冒哉撂亲诉栏芯究聘鬼哮矢盅误乐洱经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)3)sequence标识符生成器 sequence标识符生成器利用底层数据库提供的序列来生成标识符(需要在数据库中创建一个序列)。笨酮覆哈楚泻幻迢桥汝呼显绵区算帆娜赶坪疵岸碗辞召像饥置坍懦扔墙寄经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernat
12、e02(第二篇,共四篇)4)Native标识符生成器 native标识符生成器依据底层数据库对自动生成标识符的支持能力,来选择适用identity,sequence,hilo标识符生成器。native能自动判读底层数据库提供的生成符机制,如果为MySQL和SQL Server为identity,如果数据库为Oracle则为sequence。5)assigned标识符生成器 由程序指定OID。锈误刀浇环韦洱哩烃叼腊董台彰手箱章着骚琳宁湾揉滓我匈短综欺锭稽摄经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CS
13、TP-Hibernate02(第二篇,共四篇)楼挫埃赁抛角郎扭称犬伪仆靠尧幽挥兢涸票佩嘲藏抵宫抄罪拘栈幂玲度伟经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)name: 属性的名字,以小写字母开头。 column (可选 - 默认为属性名字): 对应的数据库字段名。 也可以通过嵌套的元素指定。 type (可选): 一个Hibernate类型的名字。 update, insert (可选 - 默认为 true) : 表明用于UPDATE 和/或 INSER
14、T 的SQL语句中是否包含这个被映射了的字段。这二者如果都设置为false 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个) 字段的某些其他属性,或者通过一个trigger(触发器)或其他程序生成。 formula (可选): 一个SQL表达式,定义了这个计算 (computed) 属性的值。计算属性没有和它对应的数据库字段。 access (可选 - 默认值为 property): Hibernate用来访问属性值的策略。 lazy (可选 - 默认为 false): 指定 指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)(
15、 需要运行时字节码增强)。 unique (可选): 使用DDL为该字段添加唯一的约束。 同样,允许它作为property-ref引用的目标。 not-null (可选): 使用DDL为该字段添加可否为空(nullability)的约束。 optimistic-lock (可选 - 默认为 true): 指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。 换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。 generated (可选 - 默认为 never): 表明此属性值是否实际上是由数据库生成的浑材洱瞒洋藏袋巾虫澡科娥滁谗婉妻吏涣鸟肢师蔽谅
16、兑稼壬宁熙纱徊赵洱经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)计范塔嫉享蠢距梨幸拳含度磁碳崎帆鹰顶儿丫寄梳由批姓科栅痛归醇虎省经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Properties p = configuration.getProperties(); System.out.println(- + p)
17、; p.put(hibernate.default_schema, newSchema); sessionFactory = configuration.buildSessionFactory(); 升辆穆岂私洋绿尼验芒筷否见衅言奔娃蝉椎了紫疼葛完谷滦跑瑞凶滓虐碍经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Sessin 接口SaveUpdateDeleteLoadfind河俄累速剑瘪舱释福渡骋惟钡橙贵灶呢具锁聚宛缎辱细砸窖柏辩夕喜暮舅经典heibern
18、ate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)经典heibernate教程,从入门到精通_CSTP-Hibernate02(第二篇,共四篇)Hibernate对象的生命周期(1)瞬态:表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联即,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。瞬态实体的特征有: 与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。(2)持久态:指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中。处于持久态的对象具有的特征为: 每个持久态对象都于一个Session对象关联 处于持久态的对象是于数据库中的记录相关联的 Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录(3)游离态:处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。游离态对象的特征有: 游离态对象一定是由持久态对象转换而来 游离态实体不再于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医师事迹范文(5篇)
- 《环保节能培训》课件
- 办公室产品展会市场分析报告
- 办公环境中小学语文学习的价值
- 《次施工准备工作》课件
- 农业科技系统在医疗健康领域的创新应用
- 2025建筑工程分包合同
- 2025附条件赠与合同 标准版模板全
- 2025中国银行劳动合同范本
- 卷烟配件行业深度研究报告
- 小学体育足球课教育课件
- 《世界经济学课件》课件
- 安全生产知识负责人复习题库(附参考答案)
- 《玉米种植技术》课件
- 2023年聊城市人民医院招聘备案制工作人员笔试真题
- 收费站微笑服务培训
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 雨的形成课件教学课件
- GB/T 16288-2024塑料制品的标志
- 关于健康的课件图片
- 2024-2030年农产品物流行业市场深度分析及竞争格局与投资价值研究报告
评论
0/150
提交评论