前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Result Maps高级用法案例

Result Maps高级用法案例

原创
作者头像
用户8983410
修改2021-10-08 14:55:32
3870
修改2021-10-08 14:55:32
举报

ResultMap Attributes 属性| 描述 --- | ----- id |当前命名空间中的一个唯一标识,用于标识一个result map. type |类的全限定名, 或者一个类型别名 autoMapping |如果设置这个属性,MyBatis将会为这个ResultMap开启或者关闭自动映射。这个属性会覆盖全局的属性autoMappingBehavior。默认值为:unset。

id & result
代码语言:javascript
复制
<id property="id" column="post_id"/>
<result property="subject" column="post_subject"/>

  这些是结果映射最基本内容。id 和 result 都映射一个单独列的值到简单数据类型(字符 串,整型,双精度浮点数,日期等)的单独属性或字段。

  唯一不同是 id 表示的结果将是当比较对象实例时用到的标识属性,类似于主键。这帮助来改进整体表现,特别是缓存和嵌入结果映射(也就是联合映射) 。

Id and Result Attributes 属性| 描述 --- | ----- property |映射到列结果的字段或属性。比如,你可以这样映射一些东西: “username” ,或者映射到一些复杂的东西: “address.street.number” 。 column |从数据库中得到的列名,或者是列名的重命名标签。 javaType|一个 Java 类的完全限定名,或一个类型别名。如果你映射到一个JavaBean,MyBatis 通常可以断定类型。然而,如果你映射到的是 HashMap,那么你应该明确地指定 javaType 来保证所需的行为。 jdbcType |**JDBC 类型仅仅需要对插入,更新和删除操作可能为空的列进行设置**。 typeHandler |使用这个属性,你可以覆盖默认的类型处理器。这个属性值是类的完全限定名或者是一个类型处理器的实现,或者是类型别名。

Result Maps高级用法

1.首先,我们先看看一个常见的博客页面的组成,如下:   a.页面上能够展示的部分:正文,标题,日期,作者,评论正文,评论时间,评论人等等   b.页面之外的部分:用户名,用户id,用户密码,用户基本信息(电话,邮箱,地址,兴趣,特长,等等) 2.将我们页面上的信息从数据库中查出来的SQL语句转化为Mapper文件中的语句,可能是如下内容:

代码语言:javascript
复制
<!-- Very Complex Statement -->
<select id="selectBlogDetails" resultMap="detailedBlogResultMap">
  select
       B.id as blog_id,
       B.title as blog_title,
       B.author_id as blog_author_id,
       A.id as author_id,
       A.username as author_username,
       A.password as author_password,
       A.email as author_email,
       A.bio as author_bio,
       A.favourite_section as author_favourite_section,
       P.id as post_id,
       P.blog_id as post_blog_id,
       P.author_id as post_author_id,
       P.created_on as post_created_on,
       P.section as post_section,
       P.subject as post_subject,
       P.draft as draft,
       P.body as post_body,
       C.id as comment_id,
       C.post_id as comment_post_id,
       C.name as comment_name,
       C.comment as comment_text,
       T.id as tag_id,
       T.name as tag_name
  from Blog B
       left outer join Author A on B.author_id = A.id
       left outer join Post P on B.id = P.blog_id
       left outer join Comment C on P.id = C.post_id
       left outer join Post_Tag PT on PT.post_id = P.id
       left outer join Tag T on PT.tag_id = T.id
  where B.id = #{id}
</select>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • id & result
  • Result Maps高级用法
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档