大部分现实应用中我们并不需要把数据库中的整行数据都拉出来, 所以要做扩展结果集

笔记: 在实际项目过程中, 先用逆向工程自动生成, 然后再做扩展结果集来满足大部分的现实需要

本节内容应该注意扩展结果集的命名方式

创建一个扩展类ShopCustom, (这样命名可以和Shop在项目树里面排列在一起)

package io.github.coinsjack.pojo;public class ShopCustom extends Shop {private String shopName;private String shopDesc;public ShopCustom() {}

创建一个mapper接口 ShopMapperCustom

package io.github.coinsjack.dao;import io.github.coinsjack.pojo.ShopCustom;public interface ShopMapperCustom {ShopCustom getShopById(Integer id);}

创建对应的映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="io.github.coinsjack.dao.ShopMapperCustom"><cache/>
    <resultMap id="shopResultMap" type="ShopCustom"><id column="shop_id" property="id" ></id><result column="shop_name" property="shopName"></result><result column="shop_desc" property="shopDesc"/></resultMap><select id="getShopById" parameterType="int" resultMap="shopResultMap" >select `shop_id`, `shop_name`, `shop_desc`from tb_shopwhere `shop_id` = #{id}</select>
</mapper>

测试

@Test
public void testGetShopByIdCustom() {SqlSession session = MyBatisUtil.getSqlSession();ShopMapperCustom mapper = session.getMapper(ShopMapperCustom.class);System.out.println(mapper.getShopById(29));session.close();
}

结果

2018-12-29 11:33:32,656 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom] - Cache Hit Ratio [io.github.coinsjack.dao.ShopMapperCustom]: 0.0
2018-12-29 11:33:33,128 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - ==> Preparing: select `shop_id`, `shop_name`, `shop_desc` from tb_shop where `shop_id` = ? 
2018-12-29 11:33:33,237 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - ==> Parameters: 29(Integer)
2018-12-29 11:33:33,309 [main] DEBUG [io.github.coinsjack.dao.ShopMapperCustom.getShopById] - <== Total: 1
ShopCustom{shopName='暴漫奶茶店', shopDesc='过来喝喝就知道啦,你是我的奶茶'}

Java知识点

如果父类实现了某接口,子类也会继承接口的实现

mybatis学习(51):扩展集相关推荐

  1. mybatis学习(52):扩展结果的展现

    首先使用逆向工程创建相关类 数据库表 author blog 新建一个项目,将逆向工程的生成的拷贝进来 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### ...

  2. 【51单片机】51单片机学习资料合集

    [51单片机]51单片机学习资料合集 资源文件架构 一次全部保存是保存不了的,超过了文件上限,需要分批保存,对于爱好学习和感兴趣学习51单片机的人来说是一波很不错的福利,希望大家多多支持. 51程序 ...

  3. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  4. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  5. MyBatis学习随记

    1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Conn ...

  6. MyBatis学习从练气到化虚

    MyBatis从练气到化虚 一.MyBatis的由来 1.什么是ORM 2.iBatis的由来 3.为什么选择Mybatis 二.MyBatis的基本使用 1.准备数据库 2.创建工程,增加实体类 3 ...

  7. mybatis学习笔记(12)-多对多查询

    mybatis学习笔记12-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通 ...

  8. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  9. mybatis学习笔记(7)-输出映射

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...

最新文章

  1. 抽象类与接口 day-11.2
  2. mysql gui 修改密码_MySQL修改root密码的各种方法整理
  3. Oracle 11gR2 RAC 安装Grid Infrastructure错误
  4. Android学习笔记---15_采用Pull解析器解析和生成XML内容
  5. 三维点云数据处理软件供技术原理说明_三维扫描数据处理技术_点云数据处理...
  6. iOS 手势操作和事件传递响应链
  7. 如何在阿里云建立网站
  8. PWM占空比控制电机转速
  9. 外贸常用术语_外贸术语大全(超详细)
  10. 电商产品设计:如何设计产品分销体系
  11. excel打开很慢_Excel打开很慢的解决方法
  12. 计算机的虚拟接口,怎样设置计算机的虚拟目录和虚拟端口
  13. 5.12 按照多个条件进行组合排序 [原创Excel教程]
  14. C语言求田径场周长和面积,田径场尺寸计算及画法
  15. 2022-2028全球与中国制粒机市场现状及未来发展趋势
  16. 中国计算机学会推荐中文科技期刊目录(2019年)
  17. 51单片机烟雾传感器C语言程序,51单片机烟雾报警器制作+程序
  18. 如何判断一个立即数是否合法
  19. 后台服务(Service)
  20. python小课文件_Python--小甲鱼学习笔记--第28课:文件(文件打开方式、文件对象方法)...

热门文章

  1. PHP异常与错误处理机制
  2. Ubuntu linux上Nautilus安装RabbitVCS扩展
  3. 核心技术java基础_JAVA核心技术I---JAVA基础知识(集合set)
  4. python类self_Python类中的self到底是干啥的
  5. macbookpro接口叫什么_【科普】什么是雷电接口?苹果电脑MACBOOK PRO有吗?
  6. java 过滤脚本_我写的得到天气的Java代码,其中有过滤脚本和过滤HTMLtag的函数。...
  7. 安徽大学计算机教学平台c语言作业,安徽大学计算机教学部练习题与答案1.pdf
  8. 计算机操作系统实验银行家算法,实验六 银行家算法(下)
  9. java邮件实例_java邮件小实例
  10. 【RK3399Pro学习笔记】一、Thinker Edge R 安装系统和VNC服务