Mybatis传入参数类型为ListIntergert作为条件进行查询

Mybatis传入参数类型为List作为条件进行查询

higher2017关注

2017.02.07 10:23:16字数 130阅读 5,658

表结构:

表名称为constant

需求:

现在想查询type为2、3的所有数据(甚至想查询type为1,2,3,4,5....,100的所有数据)并且返回的值是Map(key为id,value为constant类)

如果采用一个一个传参的方式进行查询肯定是不行的,以下是通过Mybatis提供的foreach标签并配合in进行查询

Mapper:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.jm.dao.ConstantDao"><resultMap id="BaseResultMap" type="com.jm.model.Constant"><result column="id" property="id" jdbcType="BIGINT" /><result column="key" property="key" jdbcType="VARCHAR" /><result column="value" property="value" jdbcType="VARCHAR" /><result column="type" property="type" jdbcType="INTEGER" /></resultMap><!--此处一定要注意属性的名称是resultMap,并且值为“BaseResultMap”这样就可以保证返回的Map的value是Constant的对象 --><select id="loadConstantByType" resultMap="BaseResultMap">select * from constant where type in<!-- 这里要将collection属性的值标记为list,不然不知道传入的参数是list separator表示分离器 item表示list中的一个元素 --><foreach item="item" index="index" collection="list" open="("separator="," close=")">#{item}</foreach></select></mapper>

DAO:

import java.util.List;
import java.util.Map;import org.apache.ibatis.annotations.MapKey;
import org.springframework.stereotype.Repository;@Repository
public interface ConstantDao {/*** 注释@MapKey表示表中那个字段作为Map的key* @return*/@MapKey("id")Map<Long,Constant> loadConstantByType(List<Integer> type);
}

POJO实体类:

public class Constant {private Long id;private String key;private String value;private Integer type;public String toString(){StringBuffer s = new StringBuffer("Constant:{");s.append("id:").append(this.id).append(",");s.append("key:").append(this.key).append(",");s.append("value:").append(this.value).append(",");s.append("type:").append(this.type).append("}");return s.toString();}public Constant() {super();// TODO Auto-generated constructor stub}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getKey() {return key;}public void setKey(String key) {this.key = key == null ? null : key.trim();}public String getValue() {return value;}public void setValue(String value) {this.value = value == null ? null : value.trim();}public Integer getType() {return type;}public void setType(Integer type) {this.type = type;}
}

pojo中的实体类最好重写toString方法

junitTest:

import java.util.Arrays;
import java.util.List;
import java.util.Map;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml", "classpath:spring-mybatis.xml" })
public class MubatisMapTest {@Autowiredprivate ConstantDao constantDao;@Testpublic void mapTest1() {List<Integer> typeList = Arrays.asList(2,3);Map<Long,Constant> constantMap = constantDao.loadConstantByType(typeList);System.out.println(constantMap);}
}

最终测试结果:

Paste_Image.png

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

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

相关文章

lombok进行有参无参构造出现的问题

查看方法 解决方法 运行成功

Java IO: ByteArray和Filter

转载自 Java IO: ByteArray和Filter 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本小节会简要概括Java IO中字节数组与过滤器的输入输出流&#xff0c;主要涉及以下4个类型的流&#xff1a;ByteArrayInputStream&#xff0c;ByteArrayOutputStream&#xff0c;Fi…

JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel

http://www.blogjava.net/jzone/archive/2015/06/05/308842.html?optadmin /** * version 1.0 * author: fwjia */ import java.util.List; public class PageModel<T> { /*** * 当前页 */ private int page 1; /*** * 总页数 */ public int totalPages 0; /*** * 每…

.NET应用迁移到.NET Core(三)从商业角度看移植过程

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下从商业角度看移植过程。 。 创建项目移植进度表 创建移植进度表时要考虑所有可能的风险&#xff0c;包括技术和商…

drawroundrect java_Canvas中drawRoundRect()方法介绍

画布Canvas的一个方法&#xff0c;绘制圆角矩形逛CSDN的时候&#xff0c;无意看到之前关注的一个博主&#xff0c;出了一本书《Android自定义控件》&#xff0c;以前学自定义控件的时候&#xff0c;就是看他的文章的&#xff0c;这次出书了&#xff0c;再加上当当做活动&#x…

Spring(笔记)

简介 Spring概述 简介 Spring : 春天 —>给软件行业带来了春天 2002年&#xff0c;Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日&#xff0c;Spring框架以interface21框架为基础&#xff0c;经过重新设计&#xff0c;发布了1.0正式版。 很难想象…

Java IO: PipedOutputStream

转载自 Java IO: PipedOutputStream 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) PipedOutputStream可以往管道里写入读取字节流数据&#xff0c;代码如下&#xff1a; OutputStream output new PipedOutputStream(pipedInputStream);while(moreData) …

mybatis报错Type interface xxx.Dao is not known to the MapperRegistry

今天在做mybatis的时候&#xff0c;遇到一个错误&#xff0c;大家看看这个错误吧&#xff1a;org.apache.ibatis.binding.BindingException: Type interface cn.mybatis_chop10_1.dao.IEmpDao is not known to the MapperRegistry. 我前找找后找找&#xff0c;就是找不出来&…

Navicat Premium 11 12 闪退

卸载有道词典 重新安装 Navicat Premium 11

java弹弹球实验报告_Java弹球游戏实验报告—chen

Java弹球游戏实验报告—chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一、实验目的2 二、需求分析2 三、实验任务2 1、设计3 2、程序要求&#xff1a;3 3、选作题&#xff1a;3 四、开发工具与平台3 五、设计…

.NET应用迁移到.NET Core(二)风险评估

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下应用迁移的风险评估。 很多移植项目超出预算或未能按时完成&#xff0c;主要是因为没有很好地管理移植过程中可能…

Java IO: PipedInputStream

转载自 Java IO: PipedInputStream译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) PipedInputStream可以从管道中读取字节流数据&#xff0c;代码如下&#xff1a; InputStream input new PipedInputStream(pipedOutputStream); int data input.read(); …

java阿里数据库连接池_Java学习:数据库连接池技术

本节内容数据库连接池Spring JDBC &#xff1a; JDBC Template数据库连接池1.概念&#xff1a;其实就是一个容器(集合)&#xff0c;存放数据库连接的容器当系统初始化好后&#xff0c;容器中会申请一些连接对象&#xff0c;当用户来访问数据库时&#xff0c;从容器中获取连接对…

/ vs /*

/ 匹配所有的请求&#xff1b;&#xff08;不包括.jsp&#xff09; /* 匹配所有的请求&#xff1b;&#xff08;包括.jsp&#xff09; <servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mappi…

.NET应用迁移到.NET Core(一)

2016年12月1日下午微软技术大会Microsoft Ignite China&#xff0c;有幸和大家分享一门课程&#xff0c;课程信息如下&#xff0c;欢迎大家到时来捧场。本文介绍下应用迁移的一个过程。 把一个运行在某个操作系统和硬件结构上的软件&#xff0c;在另一个操作系统和硬件结构上重…

mybatis关联配置(一对多配置)

mybatis框架的关联配置&#xff1a; 首先假设我们数据库中有两个表&#xff0c;一个表示move&#xff0c;另一个是moveType,move里面有一个字段typeid,与moveType表里面的id相对应。相信大家已经看出来了&#xff0c;一个moveType对应多个move,我们查询move字段的时候&#xff…

js模块化历程

转载自 js模块化历程这是一篇关于js模块化历程的长长的流水账&#xff0c;记录js模块化思想的诞生与变迁&#xff0c;展望ES6模块化标准的未来。经历过这段历史的人或许会感到沧桑&#xff0c;没经历过的人也应该知道这段历史。无模块时代在ajax还未提出之前&#xff0c;js还只…

WIN10的IE错误代码inet_e_resource_not_found解决办法

WIN10的IE错误代码inet_e_resource_not_found解决办法 原创 候鸟307183846 最后发布于2019-08-27 13:31:54 阅读数 2413 收藏 展开 解决方案&#xff1a; 1、在Internet选项里&#xff0c;点《连接》标签&#xff0c;按下《局域网设置》按钮&#xff0c;在对话框里&#…

java schema名_关于Schema的名字空间

基本的XML Schema的使用就是这样&#xff0c;下面我们要介绍XML Schema的另外一个核心的部分也是Schema最关键的一个部分&#xff0c;就是关于Schema的名字空间(namespace)的问题。在上面关于XML Schema的介绍中&#xff0c;为了把读者集中到对XML Schema的语法理解上&#xff…

404问题

、配置Tomcat 启动测试&#xff01; 可能遇到的问题&#xff1a;访问出现404&#xff0c;排查步骤&#xff1a; 查看控制台输出&#xff0c;看一下是不是缺少了什么jar包。如果jar包存在&#xff0c;显示无法输出&#xff0c;就在IDEA的项目发布中&#xff0c;添加lib依赖&…