Mybatis结果集映射
一、使用场景
当数据库里的列名和实体类的属性名不一致,就需要进行结果映射
二、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结果集映射相关推荐
- MyBatis -- 结果集映射
一.字段映射 比如有张数据表结构如下: 在后台的JavaBean中,如果遵守规范的话,属性名和列名一致,那么我们就不需要手动做字段映射,MyBatis会自动帮我们把值填充到Bean中.但现在情况不一样 ...
- 一文彻底读懂优秀开源产品MyBatis一级缓存设计!
孙玄 奈学教育CEO 读完需要 3 分钟 速读仅需 1 分钟 孙玄, 现任奈学教育科技创始人&CEO ,毕业于浙大,前百度资深研发工程师.前 58 集团技术委员会主席/高级系统架构师到前转转公 ...
- Mybatis为什么查询结果为空时返回值为NULL或空集合?
以下内容如有错误欢迎指出,有则改之无则加勉~ 一行数据记录如何映射成一个 Java 对象,这种映射机制是 MyBatis 作为 ORM 框架的核心功能之一,也是我们这篇文章需要学习的内容 开始前我们先 ...
- mybatis多对一映射association详解
简单映射(一对一) 多对一映射 方式1:按照查询嵌套处理 方式2:按照结果嵌套处理 简单映射(一对一) mybatis结果集映射ResultMap 多对一映射 我们有2个类,一个班级类ClassRoo ...
- mybatis学习2之ResultMap结果集映射
前言 当实体类的属性和数据库的字段无法对应时我们改怎么办呢? 这里我们一起来学习ResultMap结果映射集 1.ResultMap是什么? resultMap元素用来描述如何将结果集映射到Java对 ...
- Mybatis 一对多 结果集映射 简单入门 易懂
Mybatis官方文档说明处 Mybatis 一对多 结果集映射 简单入门 易懂 一.搭建数据库环境 二.idea 搭建maven 项目 (mybatis-demo) 2.1.项目结构 2.2.导入依 ...
- [mybatis]select_resultMap_自定义结果集映射规则
resultMap 自定义某个javaBean的封装规则 type:自定义规则的Java类型 id:唯一id方便引用 指定主键列的封装规则 id:定义主键底层会有优化 column:指定哪一列 pro ...
- Mybatis源码阅读(三):结果集映射3.1 —— ResultSetBuilder与简单映射
*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...
- Java-Mybatis(二): Mybatis配置解析、resultMap结果集映射、日志、分页、注解开发、Mybatis执行流程分析
Java-Mybatis-02 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV1NE411Q7Nx 学习资料:mybatis 参考文档 – ht ...
最新文章
- 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
- SCOM监控APC-UPS不间断电源设备
- 做一个计算器_如何设计一个JavaScript插件系统,编程思维比死磕API更重要
- 系统学习机器学习之增强学习(四)--马尔可夫决策过程策略MC求解
- Unity播放序列帧
- html英文特殊字体代码,字体_中英文字体等(示例代码)
- 中国四大运营商2G/3G/4G/5G工作频率以及网络制式
- 4.智能快递柜(通信篇-SOCKET)
- Android键盘 AOSP监听delete按键
- 点击计算机管理出现找不到文件,win10点击计算机管理时提示找不到文件如何办?...
- excel查找命令_快速查找Excel功能区命令
- 学计算机可以买ipad吗,考研党究竟有必要买ipad吗?买、买大个的
- 手机的耳机插电脑上可以录音吗 怎么录音
- Pycharm远程服务器无法显示图片
- 8251A可编程串行接口
- 复现Thinkphp5 5.0.22/5.1.29远程代码执行漏洞
- 计算机器和智能-阿兰图灵(转帖)
- java bearer token_如何正确使用Bearer令牌?
- minigui:静态编译连接mgncs库时遇到的xml2的问题
- 二阶龙格库塔公式推导_二阶龙格—库塔公式.PPT
热门文章
- 垃圾回收算法以及垃圾回收器_什么是垃圾回收?
- jvm jstat_使用jstat报告自定义JVM指标集
- spark 流式计算_流式传输大数据:Storm,Spark和Samza
- gradle的二进制版本_Gradle入门:创建二进制分发
- Apache Kafka消费者再平衡
- Jsoup V的幕后秘密:优化的技巧和窍门
- 通过粘性仙人掌基元进行延迟加载和缓存
- 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
- java中序列化与反序列化_Java中的序列化
- xaas_从XaaS到Java EE – 2012年哪款该死的云最适合我?