-
resultMap
和resultType
当配置resultType
时,就不需要配置resultMap
,看似resultType
方便,但是会被受限制,没有resultMap
开放多。- 相同点:都是表示查询结果集的类型。
- 不同点:
resultMap
需要手动配置映射关系,而resultType
是直接指定java类型或者自定义的实体类型,查询结果集的列名必须和实体属性名称一致(实体类:名称大小写可以忽略;java
类型,如Map
集合的key
大小写要一致,尽量都大小写规范,如果不放心可以select ID id,...
)。
优缺点: -
resultType
结果集列名要与java属性名一样,但是resultMap
不受限制,因为resultMap
有column
来规定。 - 由于
SQL
类型与Java
中类型部分不匹配,resultMap
可以通过typeHandler=""
来匹配(如:SQL中的0和1来表示java
中的false
和true
;Date
类型的转换),但是resultType
无能为力。
-
parameterMap
和patameterType
表示传入参数的对应关系,前者不推荐使用,只是mybatis
为了适应以前的版本。
提示:看到Map
字眼的想到映射关系,看到Type
字眼的想到类型。 -
#{}
和${}
相同点:都是用来作为占位符。
不同点:#{}
在预编译的时候会被替换为?,而${}
在预编译的时候直接将变量的值替换进去,而且没有引号(所以还要加上“${...}
”),故一般都是用前者,个别情况会使用后者:如需进行排序,且排序字段为参数时可以使用${} order by
后面不喜欢被预编译,所以使用${}
更为恰当)。 -
#{}
和ognl
在#{}
中如果是基本类型,其中的名称可以随便写(不推荐),但一般都用_parameter
,因为值唯一,而ognl
中必须写成_parameter
的方式
mybatis中容易混淆的概念
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 我们执行查询操作,使用MyBatis,我们只需要在XML中添加select元素,然后写上SQL语句,然后再做一些简...