ibatis sql map api学习

本文深入探讨了SQLMapAPI的功能,包括配置SQLMap、执行SQL更新操作、查询语句获取对象及对象列表的方法。介绍了SqlMapClient的工作原理、MapStatements的定义、XML特殊符号使用、参数类与参数映射、result-map组件及其作用,如继承、属性映射顺序、数据类型映射等。同时解释了缓存机制、动态生成SQL、条件检查以及批处理操作的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

《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()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值