resultmap 动态sql中的foreach
- 数据库
- 2023-08-13
- 91
大家好,今天来为大家分享resultmap的一些知识点,和动态sql中的foreach的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很...
大家好,今天来为大家分享resultmap的一些知识点,和动态sql中的foreach的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
resulttype和resultmap的区别
主要区别如下:
1、resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置。
因此对于单表查询的话用resultType是最合适的
2、resultMap:当使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。
resultMap对于一对一表连接的处理方式通常为在主表的pojo中添加嵌套另一个表的pojo,然后在mapper.xml中采用association节点元素进行对另一个表的连接处理
3、resultType是直接表示返回类型的(对应着我们的model对象中的实体)
resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在。
MyBatis中resultMap=“Map”和resultType=“Map”区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,因为Map不能很好表示领域模型,我们就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
map函数的输入输出和处理过程
map函数的输入是一个函数和一个可迭代对象(如列表、元组等),输出是一个迭代器。处理过程如下:1.map函数将传入的可迭代对象按照顺序取出其中的元素。2.对每个元素应用传入的函数,即将每个元素作为参数传递给函数,得到函数的返回值。3.将每个元素的处理结果依次放入一个新的迭代器中。示例代码:```defdouble(x):returnx*2my_list=[1,2,3,4,5]result=map(double,my_list)#输出结果是一个迭代器print(result)#输出:<mapobjectat0x7fb27ecaeb50>#遍历迭代器输出处理过的结果forvalueinresult:print(value,end='')#输出:246810```在上述示例代码中,函数double被应用到my_list中的每个元素上,然后将处理结果放入一个新的迭代器result中。最后通过遍历迭代器输出处理过的结果。
requestmap和requesttype的区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。
在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
好了,关于resultmap和动态sql中的foreach的问题到这里结束啦,希望可以解决您的问题哈!
本文链接:http://xinin56.com/su/3277.html