ibatis sql map api学习

 

《ibatis sql map api》

SQL Map API提供4个功能:配置一个SQL Map,执行SQL update操作,执行查询语句以取得一个对象,以及执行查询语句取得一个对象的List

 

SqlMapClient根据di调用sql

 

Map Statements 定义一个sql语句

 

*<![CDATA[ ]]> 中可以包含XML中本不合法的sql特殊符号

 

parameter-class 参数类名(比如在插入一个对象数据时使用)

 

parameter-map 很少使用(责任将javaBean属性映射成Map Statements参数)

 

*inline parameter 通常使用(设置为true后可以#id:NUMERIC:-9999使用内嵌参数映射)

 

基本类型输入参数 直接使用包装类(Integer)

 

Map类型输入参数 map_KEY为sql中的#id# map_val为sql参数具体值

 

*result-map 极其重要的组件,在执行查询Mapped Statement时result-map负责将结果集的列值映射成javaBean的属性值

1、可继承

2、属性的映射按它们在result-map中定义的顺序进行

3、Property type属性按字段的数据库数据类型

4、Property null指定数据库中NULL的替代值

5、Property mapped-statement描述对象之间的关系,并自动装入复杂类型

6、Property lazy-load使用mapped-statement装入复杂类型属性的集合时启动/停用lazy loading

7、隐式Result Map 

通过设定result-class属性来隐式指定Result Map 

要保证返回的ResultSet的字段名称(或标签或别名)和javaBean中可写入属性名称匹配

缺点是无法指定字段的数据类型

对大小写不敏感

对性能有轻微不理影响,因为读取ResultSetMetaData信息会使某些JDBC Driver变慢

支持包装类

Map类型Result

*复杂类型属性 用以表示在数据库中相互关系为一对一 一对多的数据

对于一对多的数据关系,拥有复杂类型属性的类作为“多”的一方,而复杂属性本身为“一”的一方

细读2.5.5的代码例子

*复杂类型集合属性 用以表示在数据库中相互关系为多对多 一对多的数据

细读2.5.6的代码例子

 

cache-model缓存Mapped Statement Result

 

动态Mapped Statement 在配置中根据if判断动态生成不同的sql

 

条件元素 一元<isNotNull>/二元<isEqual>/其他<isParameterPresent>检查是否存在参数对象

 

批处理 sqlMap.startBatch()/sqlMap.endBatch()

 

 

你可能感兴趣的:(ibatis)