-
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语句,然后再做一些简...