正在加载图片...
存储过程实现系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必 须通过经过高度优化的sαL语句(或存储过程)才能达到系统性能设计指标 面对这样的需求,再次举起 Hibernate大刀,却发现刀锋不再锐利,甚至无法使用, 奈何?恍惚之际,只好再摸出」DBC准备拼死一搏……,说得未免有些凄凉,直接 使用」DBC进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码 乏味的字段读取操作令人厌烦。“半自动化”的 ibatis,却刚好解决了这个问题。 使用BATS提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Jav对 象,这一层与通过 Hibernate实现ORM而言基本一致,而对于具体的数据操作 Hibernate会自动生成soQL语句,而 ibatis则要求开发者编写具体的SQL语句。 相对 Hibernate等“全自动”ORM机制而言, ibatis以SoQ开发的工作量和数据库 移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM实现 的一种有益补充, ibatis的出现显得别具意义 i.这里的“半自动化”,是相对 Hibernate等提供了全面的数据库封装机制 的“全自动化”ORM实现而言,“全自动”ORM实现了POO和数据 库表之间的映射,以及SQL的自动生成和执行。而 ibatis的着力点,则 在于POo与SQL之间的映射关系。也就是说, ibatis并不会为程序员在 运行期自动生成sαL_执行。具体的sQL需要程序员编写,然后通过映 射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POo Poo的概念(举个具体的例子: eg User java) POJO= pure old java object or plain ordinary java object or what ever. tEiR 在一些 Object/ Relation M apping工具中,能够做到维护数据库表记录的 persisent object完全是一个符合 Java bean规范的纯Java对象,没有增加 别的属性和方法。 i.再来区别持久对象和Poo 持久对象实际上必须对应数据库中的 entity,所以和POo有所区别。比 如说POO是由neW创建,由GC回收。但是持久对象是 insert数据库创 建,由数据库 delete删除的。基本上持久对象生命周期和数据库密切相 关。另外持久对象往往只能存在一个数据库 Connection之中, Connnection关闭以后,持久对象就不存在了,而POo只要不被GC回收, 总是存在的 由于存在诸多差别,因此持久对象Po( Persistent Object在代码上肯定和 Poo不同,起码PO相对于Po会增加一些用来管理数据库 entity状态 的属性和方法。而ORM追求的目标就是要Po在使用上尽量和Poo 致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到Po 的存在。 c)数据持久化比较合理的定义 .数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转 换为内存中的数据模型的统称.数据模型可以是任何数据结构或对象模 型,存储模型可以是关系模型、XML、二进制流等。cmp和 Hibernate 是对象模型到关系模型之间转换的不同实现。只不过对象模型和关系模型 应用广泛,所以就会误认为数据持久化就是对象模型到关系型数据库的转 换罢了 持久化”这个概念是和“暂时”等概念相对的,数据在计算机中有存储过程实现系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必 须通过经过高度优化的 SQL 语句(或存储过程)才能达到系统性能设计指标。 面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用, 奈何?恍惚之际,只好再摸出 JDBC 准备拼死一搏……,说得未免有些凄凉,直接 使用 JDBC 进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码, 乏味的字段读取操作令人厌烦。“半自动化”的 ibatis,却刚好解决了这个问题。 使用 iBATIS 提供的 ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的 Java 对 象,这一层与通过 Hibernate 实现 ORM 而言基本一致,而对于具体的数据操作, Hibernate 会自动生成 SQL 语句,而 ibatis 则要求开发者编写具体的 SQL 语句。 相对 Hibernate 等“全自动”ORM 机制而言,ibatis 以 SQL 开发的工作量和数据库 移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现 的一种有益补充,ibatis 的出现显得别具意义。 i. 这里的“半自动化” ,是相对 Hibernate 等提供了全面的数据库封装机制 的“全自动化 ”ORM 实现而言,“全自动” ORM 实现了 POJO 和数据 库表之间的映射,以及 SQL 的自动生成和执行。而 ibatis 的着力点,则 在于 POJO 与 SQL 之间的映射关系。也就是说,ibatis 并不会为程序员在 运行期自动生成 SQL 执行。具体的 SQL 需要程序员编写,然后通过映 射配置文件,将 SQL 所需的参数,以及返回的结果字段映射到指定 POJO。 ii. POJO 的概念(举个具体的例子 :eg.User.java) POJO = pure old java object or plain ordinary java object or what ever.就是说 在一些 Object/Relation M apping 工具中,能够做到维护数据库表记录的 persisent object 完全是一个符合 Java Bean 规范的纯 Java 对象,没有增加 别的属性和方法。 iii. 再来区别持久对象和 POJO: 持久对象实际上必须对应数据库中的 entity,所以和 POJO 有所区别。比 如说 POJO 是由 new 创建,由 GC 回收。但是持久对象是 insert 数据库创 建,由数据库 delete 删除的。基本上持久对象生命周期和数据库密切相 关。另 外持 久对 象往 往只 能存 在一 个数 据库 Connection 之 中, Connnection 关闭以后,持久对象就不存在了,而 POJO 只要不被 GC 回收, 总是存在的。 由于存在诸多差别,因此持久对象 PO(Persistent Object)在代码上肯定和 POJO 不同,起码 PO 相对于 POJO 会增加一些用来管理数据库 entity 状态 的属性和方法。而 ORM 追求的目标就是要 PO 在使用上尽量和 POJO 一 致,对于程序员来说,他们可以把 PO 当做 POJO 来用,而感觉不到 PO 的存在。 c) 数据持久化比较合理的定义: i. 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转 换为内存中的数据模型的统称. 数据模型可以是任何数据结构或对象模 型,存储模型可以是关系模型、XML、二进制流 等。cmp 和 Hibernate 只 是对象模型到关系模型之间转换的不同实现。只不过对象模型和关系模型 应用广泛,所以就会误认为数据持久化就是对象模型到关系型数据库的转 换罢了。 ii. “持久化”这个概念是和 “暂时”等概念相对的,数据在计算机中有一
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有