iBatis详细使用手册(.net版)(8)
发布时间:2021-06-05
发布时间:2021-06-05
图片看不清楚?请点击这里查看原图(大图)。
2.Parameter Maps :参数映射的配置,它是被用来向一个语句(statement)提供所需参数的配置。每一个Parameter Maps都有一个自己的ID,在需要的时候需要在statement 的 parameterMap属性中提供它的ID。但是对一个语句来说,它并不是必须,在iBatis中还支持内联参数(Inline Parameter Maps)的形式,我们不需单独写一个Parameter Maps配置,只需要向parameterClass提供参数的类型,可以是元数据类型,复合数据类型,IDictionary数型的弱类型对象(使用key,value的键值对)。在内部访问数据类型的时候只使用#property#的形式访问对应的属性值。
注意:在任何地方使用到的parameterClass类型如果是一个元数据类型(int,string etc),都需要使用#value#的形式的来访问它的值。
3.Result Maps :返回结果的映射关系配置,就是列与属性的对应关系。在statement中使用resultMap属性来指定一个结果映射。对一个statement来说,resultMap也不是必须的,同样的,它仍然可以被resultClass给代替,因为如果返回出结果数据集的列名跟数据对象的属性相同的话,它会自动去匹配,但是它不保证所有列都被会被正确映射(当某列名在对象中找不对应的属性名,这列值将不被处理)。而resultMap则不同,如果已经在resultMap中定义将要使用到列或属性在结果集或数据对象中不存在,将会被认为是错误的,将会抛出异常。通过上面的表可以看到insert,update,delete三种语句类型是没有resultMap和resultClass,因为原则上来说,它们的操作是没有必要返回结果集。
注意:如果在一个statement中同时指定了resultMap和resultClass属性的话,那将会优先使用resultMap。同时result Map也是一个实现对象复杂查询功能的重要手段,如:result map的继承(与discriminator配合使用),对象的1..1、1..N关系查询。
4.Cache Model :缓存模型。使用在Cache Model中定义好的缓存机制,只需在查询语句配置的cacheModel属性就可以很容易地缓存查询返回的数据集。在iBatis中提供了三种的类型的缓存模式(Memory,LRU,FIFO)算法。三种算法主要在于静态过期策略上的不同,而它们都有相同的动态过期依赖策略,即可以设置执行哪些statement时,缓存过期。 注意:iBaits的缓存模型正常情况是非常好用的,但是因为缓存过期策略上的封装性,它在多个服务器,负载平衡场景下还是有它的局限性。
系列(4) iBatisNet API基础
有了对iBatis配置系统的一些认识后,现在就先来简单了解一下,iBatis是通过什么的方式去调用映射文件的SQL语句的。这对我们接下来深入了解有很大的帮助。
上一篇:最绝望的时候该做些什么?
下一篇:冲压工艺与模具设计试题库及答案