iBatis的主要设计目的还是为了让我们在执行SQL时对输入输出的数据的管理更加方便,所以方便让我们写出SQL和方便地获取SQL的执行结果才是iBatis的核心竞争力。那么iBatis是怎么体现他的核心竞争力呢?
iBatis框架的一个重要组成部分就是其SqlMap配置文件,SqlMap配置文件的核心是Statement语句包括CIUD iBatis通过解析SqlMap配置文件得到的所有的Statement执行语句,同时会形成ParameterMap、ResultMap两个对象,用于处理参数和经过解析后交给数据库处理的SQL对象。这样除了数据库的连接,一条SQL语句的执行已经具备了。
数据映射的大体过程是这样的:根据在Statement中定义的SQL语句,解析其中参数,按照其出现的顺序保存在Map集合中,并按照在Statement中定义的ParameterMap对象类型解析出参数的Java数据类型,根据其数据类型构建TypeHandler对象,参数值的复制是通过DateExchange对象完成的。
返回结果ResultMap的映射情况也是类似的。主要是解决SQL语句中的参数和返回结果的列名与在Statement中定义的parameterClass和resultClass中属性的对应关系问题。