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