译注:本章讲解的是iBATIS的安装和配置,原书使用的是Java版本,与.NET版本的安装、配置过程不尽相同,因此这里直接就.NET版本进行说明。主要参考的是iBATIS官方的DataMapperGuide文档,本章的配置主要针对DataMapper,DataAccess的配置将出现在第10章。iBATIS的安装过程快速而简单。它是一个类库,而不是应用程序,所以实际上并不需要安装,但要在应用程序中使用它还是要经过几个步骤。如果您熟悉C#和ADO.NET,那么可能需要好好阅读本章为下面的一两章做好准备。
在上一章中我们详细讨论了iBATIS的哲学观,以及这个框架的来历。我们也说过,iBATIS是一个混合式的解决方案(hybrid solution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。 iBATIS是一种data mapper。Martin Fowler在他的《Patterns of Enterprise Application Architecture》一书中是这样描述Data Mapper的: 一个映射层,在对象和数据库间传递数据,并保持两者与映射层本身相独立。. 注:Mapper是在两个独立对象间建立通信关系的一种对象。
iBATIS的安装和配置;在前面的章节中,我们了解了iBATIS的sqlMap.config文件的配置,还给出了一个映射语句文件的示例。现在您应该具备了一定基础,可以进一步完善我们的数据访问层了。本章和下一章(执行非查询语句)将详细讨论在DataMap文件中创建和使用映射语句的相关内容。在本章中,我们将首先浏览映射语句的大体内容以及它们的前提知识。然后我们将解释如何使用映射语句从数据库中获取类型化的对象(typedobject),以及如何传入参数来限制返回的数据(比如添加查询条件)。
在上一章中我们详细讨论了iBATIS的哲学观,以及这个框架的来历。我们也说过,iBATIS是一个混合式的解决方案(hybridsolution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。iBATIS是一种datamapper。MartinFowler在他的《Patterns of Enterprise Application Architecture》一书中是这样描述DataMapper的:一个映射层,在对象和数据库间传递数据,并保持两者与映射层本身相独立。.注:Mapper是在两个独立对象间建立通信关系的一种对象。Martin很好地区分了数据映射(DataMapping)和元数据映射(MetadataMapping),后者正是O/RM工具的依据,这种工具将数据库的表和列映射到应用程序中的类和字段(field),也就是说它将数据库的元数据映射到类的元数据。
映射参数(MappingParameters)对于大多数SQL语句来说,它们有用是因为我们可以在运行时向其传入参数。有两种方式可以将参数(parameter)映射到语句中:内联(inline)参数和外部(external)参数。使用内联参数,配置一般较为简单,iBATIS会根据您的配置进行“揣测”,以获取其它细节信息。而使用外部参数时,配置一般更为显式的(具体)——因为您告诉iBATIS它该如何去做。4.3.1外部参数映射参数映射(ParameterMap)定义了一个参数的有序列表,它与查询语句的占位符相匹配。
本章内容包括iBATISAPI的更多内容插入数据更新和删除数据使用存储过程对数据库执行查询无疑很重要,但多数程序同时也需要将数据写入数据库。在本章中,我们将探究使用iBATIS操作数据库的几种方式。本章的内容以第4章介绍的概念为基础,因此,如果您刚开始接触iBATiS,还没读过第4章,可以先去浏览一下,因为这一章中的关于参数映射的绝大部分内容同样适用于本章的非查询语句。5.1更新数据的基石 在第4章中,您已经学习了所有的语句类型和基本查询相关的部分API。这里我们再来看一下执行非查询语句常用的API,然后回顾一下更新数据库相关的语句类型。
iBATIS快速上手iBATIS框架非常简单,它上手起来同样简单。有多简单呢?使用iBATIS只要五分钟我们就可以创建一个完整的应用程序了——当然这不是大型的ERP(Enterprise Resource Planning)解决方案,也不是大规模的电子商务网站,只是一个简单的命令行工具,它可以执行iBATISSQLMap中的SQL语句并返回结果到控制台。
映射参数(MappingParameters)对于大多数SQL语句来说,它们有用是因为我们可以在运行时向其传入参数。有两种方式可以将参数(parameter)映射到语句中:内联(inline)参数和外部(external)参数。使用内联参数,配置一般较为简单,iBATIS会根据您的配置进行“揣测”,以获取其它细节信息。而使用外部参数时,配置一般更为显式的(具体)——因为您告诉iBATIS它该如何去做。4.3.1外部参数映射参数映射(ParameterMap)定义了一个参数的有序列表,它与查询语句的占位符相匹配。注意,参数对象的属性定义可以按任意顺序,参数映射会确保每个值得以正确地传入。
iBATIS In Action:序言和目录序言在我的软件开发生涯中,我曾工作于多种不同的环境中。在同一家公司中,人们往往会以不同的方式进行开发。考虑到各种各样的挑战——人、工具,它们就是开发人员所处的世界——我们会很快意识到这个世界是如此变化多端。我永远不能了解下一个咨询项目会给我带来何种意外的挑战,所以总会在工具箱里放上各种不同的工具。在数年时间内,iBATIS不过是一个小代码块,它能在我需要手工编写JDBC代码时为我节省一些时间。那么iBATIS是如何从我的工具箱中的小工具蜕变为一个Apache项目,被数以千计的人使用的呢?我从未有意把iBATIS作为一个完全的开源项目。代码就放在那里,但我既没有出售它,也没有与任何人共享。
执行非查询语句(二)本章内容包括iBATIS API的更多内容插入数据更新和删除数据使用存储过程5.3更新和删除数据至此,我们已经学习了如何向数据库插入数据以及获取相应记录的键值,再来看看如何更新和删除数据。Insert方法返回的是object类型的值,而Update和Delete方法则返回int类型的值,该值指示了更新或删除语句所影响的记录数。iBATIS框架允许使用单条语句操作一条或多条记录。这是它与大多数ORM工具不同的地方之一,后者一般只能修改单条记录。5.3.1并发更新处理iBATIS目前尚未实现的一个功能是锁定记录以管理对相同数据的并发修改。
中我们详细讨论了iBATIS的哲学观,以及这个框架的来历。我们也说过,iBATIS是一个混合式的解决方案(hybridsolution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。iBATIS是一种datamapper。MartinFowler在他的《Patterns of Enterprise Application Architecture》一书中是这样描述DataMapper的:一个映射层,在对象和数据库间传递数据,并保持两者与映射层本身相独立。.注:Mapper是在两个独立对象间建立通信关系的一种对象。Martin很好地区分了数据映射(DataMapping)和元数据映射(MetadataMapping),后者正是O/RM工具的依据,这种工具将数据库的表和列映射到应用程序中的类和字段(field),也就是说它将数据库的元数据映射到类的元数据。
本文档是 iBatis 2 的 API 规范。Ibatis是一个轻量级的ORM框架。相对于Hibernate“一站式”的ORM解决方案而言,ibatis是一个“半自动化”的ORM实现。 同Hibernate大致一样(Session、Transaction、Connection),ibatis中不叫SessionFactory而是叫SqlMapBuilder。
iBatis的核心就在于映射文件(Data Map XML File)。在映射文件里可以定义包括要执行各种SQL语句,存储过程,输入参数映射,返回结果映射,缓存机制,并且能通过几种相对比较复杂的配置实现对象之间的关联关系和延迟加载。这也是iBatis区别ORM框架的,具备更灵活性,更高性能的关键所在。
相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。 所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
iBATIS 技术教程
iBATIS 技术教程
业务分层搬家的例子持久层细化Hibernate映射关系iBATIS映射关系认识。
iBATIS技术教程(2)—第一个感性认识幻想(郑岩峰)2008-6-2实例步骤1.建立数据库2.创建工程3.添加lib4.编写sqlmapconfig.xml5.编写sqlmap.xml6.编写代码与传统的JDBC进行比较减少了61%的代码量最简单的持久化框架架构级性能增强SQL代码从程序代码中彻底分离,可重用增强了项目中的分工增强了移植性
简介iBATIS是ClintonBegin开发,现在由APACHE基金会支持的用于加快JDBC编程的经过泛化的框架,是一个持久化框架。当前支持JAVA、.NET、RUBY三种语言
struts2的配置以struts.xml为主要配置文件,该文件配置了URL和java类之间的对应关系,struts支持多个配置文件并存,所以某个模块的配置文件可以新建一个struts-模块名.xml,并在此文件中进行配置。