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();}
}

五、测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

activemq 性能测试_ActiveMQ性能测试

activemq 性能测试我们使用ActiveMQ作为消息传递层–发送大量需要低延迟的消息。 通常它可以正常工作&#xff0c;但是在某些情况下我们已经看到性能问题。 在花了太多时间测试我们的基础结构之后&#xff0c;我想我已经学到了有关ActiveMQ的一些有趣的东西&#xff1a;它可能真…

WPS for MacOS如何设置自动拼写检查

在顶部菜单栏&#xff0c;点击【文件】–>【文字偏好设置】或者点击左上角的【文件】–>【文字偏好设置】&#xff1a;

jdk8 bug_JDK Bug系统浪费时间

jdk8 bug当我在OpenJDK jdk-dev邮件列表中看到Jesper Wilhelmsson的消息标题“ Introducing time浪费者 ”时&#xff0c;我想到了该消息的可能内容的几种可能性。 在阅读该链接与单击链接后出现消息之间的第二个左右时间内 &#xff0c;我想知道消息是否与以下主题之一有关&am…

角度和弧度的计算关系

一、角的两种单位 “ 弧度”和“度”是度量角大小的两种不同的单位。就像“米”和“市尺”是度量长度大小的两种不同的单位一样。 二、弧度的定义 角&#xff08;弧度&#xff09;&#xff1d;弧长/半径 圆的周长是半径的 2π倍&#xff0c;所以一个周角&#xff08;360度&a…

关键字搜索

1.1.1 需求分析 在首页或搜索页输入关键字&#xff0c;点击搜索 显示列表搜索结果&#xff1a; 1.1.2实现思路 &#xff08;1&#xff09;后端使用匹配查询和布尔查询 &#xff08;2&#xff09;前端向后端传递map&#xff08;因为提交的不仅仅是关键字&#xff0c;还有品牌…

java中线程死锁及避免_如何避免Java线程中的死锁?

java中线程死锁及避免如何避免Java中的死锁&#xff1f; 是Java面试中最受欢迎的问题之一&#xff0c;也是本季多线程的风格&#xff0c;主要是在高层提出&#xff0c;并带有很多后续问题。 尽管问题看起来很基础&#xff0c;但是一旦您开始深入研究&#xff0c;大多数Java开发…

MySQL查询数据字典_存储过程_函数_视图元数据_表元数据_触发器

文章目录一、查询所有的存储过程二、查询某个数据库下的存储过程三、查询所有的函数四、查询某个数据库下的函数五、查看存储过程详情六、查看函数详情七、查看存储过程的创建源码八、查看函数的创建源码九、查看视图元数据十、查看表元数据十一、查看触发器一、查询所有的存储…

关键字高亮查询

1.1.1 需求分析 所谓高亮&#xff0c;就是使用特别的样式修饰某字段中包含的搜索关键字。 需求&#xff1a;实现搜索高亮&#xff0c;商品名称使用红色显示搜索关键字。 1.1.2实现思路 使用默认高亮显示来获取每个搜索命中title字段的高亮显示&#xff0c;在指定title字段的…

jep和jsr_JEP 342:JVM和幽灵

jep和jsrJEP 342 &#xff08;“限制推测执行”&#xff09;已从“ 草稿 ”状态转换为“ 候选 ”状态&#xff0c;但尚未针对特定的JDK版本&#xff08;请参见图形以了解JEP流程中的步骤 &#xff09;。 Jesper Wilhelmsson 写道 &#xff0c; JEP 342 “涵盖了使用新的C 编译器…

执行SQL脚本文件

文章目录一、登录数据库后&#xff0c;执行命令 source二、未登录数据库&#xff0c;执行命令 mysql一、登录数据库后&#xff0c;执行命令 source mysql> source /root/test/test.sql;二、未登录数据库&#xff0c;执行命令 mysql [roothtlwk0001host ~]# mysql -uroot -…

linux使jdk开机可用_JDK 11的一般可用性

linux使jdk开机可用按计划&#xff0c;这是今天宣布的是JDK 11被释放的通用性 。 本周初&#xff0c;Iris Clark宣布了“ JSR 384&#xff08;Java SE 11&#xff09;最终发行版 ”&#xff0c;并且在同一封邮件中引用了JSR 384的最终发行版&#xff0c;并引用了“ Java SE 11&…

实现搜索分页功能

1.1 需求分析 实现搜索分页功能&#xff0c;每页显示30条记录。实现商品列表下方分页栏。 1.2 实现思路 前端向后端传递参数 pageNo &#xff08;页码&#xff09; 1.3 代码实现 修改SearchServiceImpl的search方法&#xff0c;在第1段代码中添加代码 package com.changg…

MySQL的set names命令详解

执行下面的命令&#xff1a; mysql> set names charset_name;相当于执行了下面三条命令语句&#xff1a; mysql> SET character_set_client charset_name; mysql> SET character_set_results charset_name; mysql> SET character_set_connection charset_name…

aws ec2 跨帐号共享_AWS共享资源的警告

aws ec2 跨帐号共享最近&#xff0c;我一直在发布一个新版本&#xff0c;与往常一样&#xff0c;通过将DNS记录切换为指向以前的“备用”组的负载平衡器来利用蓝绿色部署 。 但是在切换DNS之前&#xff0c;我检查了新发布版本的日志并发现了一些奇怪的现象– Web框架&#xff0…

MySQL数据库模式_SQL模式

文章目录查看 MySQL 当前的 SQL 模式设置 MySQL 的 SQL 模式SQL 模式介绍TRADITIONAL&#xff08;传统模式&#xff09;STRICT&#xff08;严格模式&#xff09;ANSI 模式MySQL 服务器可以以不同的 SQL 模式来操作&#xff0c;并且可以为不同客户端应用不同模式。这样每个应用程…

spring http缓存_HTTP缓存与Spring示例

spring http缓存缓存是HTTP协议的强大功能&#xff0c;但由于某些原因&#xff0c;它主要用于静态资源&#xff0c;例如图像&#xff0c;CSS样式表或JavaScript文件。 但是&#xff0c;HTTP缓存不仅限于应用程序的资产&#xff0c;因为您还可以将其用于动态计算的资源。 只需少…

分类列表查询

1 需求分析 以关键字作为查询条件&#xff0c;查询结果中包含的商品分类&#xff0c;在页面中显示出来 2 实现思路 &#xff08;1&#xff09;商品分类列表的显示使用聚合查询 &#xff08;2&#xff09;使用过滤查询 3 代码实现 修改SearchServiceImpl的search方法&…

用户微服务-用户注册 发送短信验证码

1 需求分析 注册账号&#xff0c;用手机号注册&#xff0c;填写后发送短信验证码&#xff0c; 填写短信验证码正确方可注册成功。 2 实现思路 1&#xff09;用户微服务生成6位的短信验证码&#xff0c;存入redis &#xff08;以code_手机号为key&#xff09;&#xff0c;再发…

jdk 流合并_JDK 12,合并的收集器和命名的挑战

jdk 流合并看来可能是一种新的方法&#xff0c;将可在java.util.streams.Collectors类JDK 12即会&#xff0c;根据新方法的提出了基于Javadoc的文档&#xff0c;“返回一个收藏家是将输入的元素两个规定的收藏家并将其结果与指定的合并功能合并。” 目前 &#xff0c;此新Colle…

MySQL配置变量log-bin,重启数据库服务失败

在配置文件 /etc/my.cnf 添加变量 log-bin&#xff1a; log-bin/var/lib/mysql/mybinlog/mysql-bin重启数据库服务报错&#xff1a; [roothtlwk0001host lib]# systemctl start mysqld.service Job for mysqld.service failed because the control process exited with error…