一、使用场景

当数据库里的列名和实体类的属性名不一致,就需要进行结果映射

二、UserMapper接口

package com.william.dao;import com.william.domain.QueryValueObject;
import com.william.domain.User;
import org.apache.ibatis.annotations.Param;import java.util.HashMap;
import java.util.List;public interface UserMapper {/*** 结果映射* @param username* @param sex* @param startIndex* @param pageSize* @return*/public List<User>   findByManyConditionByParamByResultMap(@Param("username") String username, @Param("sex") String sex, @Param("startIndex")Integer startIndex,@Param("pageSize") Integer pageSize);
}

三、UserMapper.xml

<?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="com.william.dao.UserMapper"><!--结果映射--><!--id :唯一标识type:返回值类型--><resultMap id="userMap" type="user"><!--映射主键column:列名property:属性名--><id column="id" property="id"></id><result column="_username" property="username"></result></resultMap><select id="findByManyConditionByParamByResultMap" resultMap="userMap">select * from user where _username like "%"#{username}"%" and sex=#{sex}limit #{startIndex},#{pageSize}</select>
</mapper>

四、TestCrud测试类

package com.william;import com.william.dao.UserMapper;
import com.william.domain.QueryValueObject;
import com.william.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;/*** @author :lijunxuan* @date :Created in 2019/7/12  10:16* @description :* @version: 1.0*/
public class TestCrud {/*** 结果映射   Mybatis多条件直接查询Param注解版* @throws IOException*/@Testpublic void findByManyConditionByParamByResultMap() throws IOException {InputStream inputStream = Resources.getResourceAsStream("Mybatis-configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//获取某接口的动态代理对象(获取某接口的一个实现类)UserMapper userMapper = sqlSession.getMapper(UserMapper.class);QueryValueObject queryValueObject = new QueryValueObject();List<User> userMapperByConditionByMap = userMapper.findByManyConditionByParamByResultMap("a","男",0,7);for (User user1 : userMapperByConditionByMap) {System.out.println(user1);}sqlSession.close();}
}

五、测试结果

Mybatis结果集映射相关推荐

  1. MyBatis -- 结果集映射

    一.字段映射 比如有张数据表结构如下: 在后台的JavaBean中,如果遵守规范的话,属性名和列名一致,那么我们就不需要手动做字段映射,MyBatis会自动帮我们把值填充到Bean中.但现在情况不一样 ...

  2. 一文彻底读懂优秀开源产品MyBatis一级缓存设计!

    孙玄 奈学教育CEO 读完需要 3 分钟 速读仅需 1 分钟 孙玄, 现任奈学教育科技创始人&CEO ,毕业于浙大,前百度资深研发工程师.前 58 集团技术委员会主席/高级系统架构师到前转转公 ...

  3. Mybatis为什么查询结果为空时返回值为NULL或空集合?

    以下内容如有错误欢迎指出,有则改之无则加勉~ 一行数据记录如何映射成一个 Java 对象,这种映射机制是 MyBatis 作为 ORM 框架的核心功能之一,也是我们这篇文章需要学习的内容 开始前我们先 ...

  4. mybatis多对一映射association详解

    简单映射(一对一) 多对一映射 方式1:按照查询嵌套处理 方式2:按照结果嵌套处理 简单映射(一对一) mybatis结果集映射ResultMap 多对一映射 我们有2个类,一个班级类ClassRoo ...

  5. mybatis学习2之ResultMap结果集映射

    前言 当实体类的属性和数据库的字段无法对应时我们改怎么办呢? 这里我们一起来学习ResultMap结果映射集 1.ResultMap是什么? resultMap元素用来描述如何将结果集映射到Java对 ...

  6. Mybatis 一对多 结果集映射 简单入门 易懂

    Mybatis官方文档说明处 Mybatis 一对多 结果集映射 简单入门 易懂 一.搭建数据库环境 二.idea 搭建maven 项目 (mybatis-demo) 2.1.项目结构 2.2.导入依 ...

  7. [mybatis]select_resultMap_自定义结果集映射规则

    resultMap 自定义某个javaBean的封装规则 type:自定义规则的Java类型 id:唯一id方便引用 指定主键列的封装规则 id:定义主键底层会有优化 column:指定哪一列 pro ...

  8. Mybatis源码阅读(三):结果集映射3.1 —— ResultSetBuilder与简单映射

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  9. Java-Mybatis(二): Mybatis配置解析、resultMap结果集映射、日志、分页、注解开发、Mybatis执行流程分析

    Java-Mybatis-02 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV1NE411Q7Nx 学习资料:mybatis 参考文档 – ht ...

最新文章

  1. 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
  2. SCOM监控APC-UPS不间断电源设备
  3. 做一个计算器_如何设计一个JavaScript插件系统,编程思维比死磕API更重要
  4. 系统学习机器学习之增强学习(四)--马尔可夫决策过程策略MC求解
  5. Unity播放序列帧
  6. html英文特殊字体代码,字体_中英文字体等(示例代码)
  7. 中国四大运营商2G/3G/4G/5G工作频率以及网络制式
  8. 4.智能快递柜(通信篇-SOCKET)
  9. Android键盘 AOSP监听delete按键
  10. 点击计算机管理出现找不到文件,win10点击计算机管理时提示找不到文件如何办?...
  11. excel查找命令_快速查找Excel功能区命令
  12. 学计算机可以买ipad吗,考研党究竟有必要买ipad吗?买、买大个的
  13. 手机的耳机插电脑上可以录音吗 怎么录音
  14. Pycharm远程服务器无法显示图片
  15. 8251A可编程串行接口
  16. 复现Thinkphp5 5.0.22/5.1.29远程代码执行漏洞
  17. 计算机器和智能-阿兰图灵(转帖)
  18. java bearer token_如何正确使用Bearer令牌?
  19. minigui:静态编译连接mgncs库时遇到的xml2的问题
  20. 二阶龙格库塔公式推导_二阶龙格—库塔公式.PPT

热门文章

  1. 垃圾回收算法以及垃圾回收器_什么是垃圾回收?
  2. jvm jstat_使用jstat报告自定义JVM指标集
  3. spark 流式计算_流式传输大数据:Storm,Spark和Samza
  4. gradle的二进制版本_Gradle入门:创建二进制分发
  5. Apache Kafka消费者再平衡
  6. Jsoup V的幕后秘密:优化的技巧和窍门
  7. 通过粘性仙人掌基元进行延迟加载和缓存
  8. 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
  9. java中序列化与反序列化_Java中的序列化
  10. xaas_从XaaS到Java EE – 2012年哪款该死的云最适合我?