mybaits foreach

<select id="selectQuickConsultDoctorList" resultMap="BaseResultMap" parameterType="java.util.List">
        SELECT
            doc.*
        FROM
            user_doctor doc
        LEFT JOIN bas_professional pro ON pro. NAME = doc.profession_field
        WHERE
            doc.`approved` = 2
        AND (doc.consultprice = 0 or doc.consulttoll = 3)
        <if test="list != null">
            AND doc.doctorID in
            <foreach collection="list" open="(" close=")" separator="," item="doctorid">
                #{doctorid,jdbcType=INTEGER}
            </foreach>
        </if>
    </select>
List<UserDoctor> selectQuickConsultDoctorList(List<Integer> paramList);

结果:

SELECT
    doc.*
FROM
    user_doctor doc
LEFT JOIN bas_professional pro ON pro. NAME = doc.profession_field
WHERE
    doc.`approved` = 2
AND (
    doc.consultprice = 0
    OR doc.consulttoll = 3
)
AND doc.doctorID IN (?, ?, ?, ?, ?, ?, ?, ?, ?)

补充:diseaseIds : "8,19"

    @Override
    public List<Map<String,String>> getMedicinal(String diseaseIds ,Integer userId) {
        UserSession session = usrUserService.getUserSession(userId);
        Map<String,Object> paramMap = new HashMap<String,Object>();
        paramMap.put("diseaseIds", diseaseIds.split(","));
        paramMap.put("hospitalId", String.valueOf(session.getHosId()));
        List<Map<String,String>> list = basMedicinalMapper.getMedicinal(paramMap);
        return list;
    }
    List<Map<String,String>> getMedicinal(Map<String,Object> paramMap);
    WHERE
    mdl.disease_id in
    <foreach collection="diseaseIds" open="(" close=")" item="item" separator=",">
         #{item,jdbcType=INTEGER}
    </foreach>
WHERE mdl.disease_id in ( ? , ? )
Parameters: 8(String), 19(String)
时间: 2024-10-13 08:11:34

mybaits foreach的相关文章

mybaits xml foreach循环(用于sql in语句)

        <if test="params.status != null" >             and a.status in             <foreach collection="params.status" index="index" item="item" open="(" separator="," close=")"

mybaits深入浅出之动态 SQL(四)

上一篇文章:  mybaits入门demo映射文件详解(三) 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL 能力.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 字符串有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号.利用动态 SQL 这一特性可以彻底摆脱这种痛苦. 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意映射的 SQ

1、SpringMVC+MyBaits实现查询所有

1.创建如下所示项目 2.在src下的com.entity包下创建 Emp.java 1 package com.entity; 2 /** 3 * 4 * @author Holly老师 5 * 6 */ 7 public class Emp { 8 private Integer empno; 9 private String ename; 10 private double sal; 11 private Integer deptno; 12 private String dname; 1

mybaits 学习笔记

1.导入mybaits jar包 手动导入mybaits github 下载地址 https://github.com/mybatis/mybatis-3/ maven导入依赖 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artif

讲解mybaits的标签语法

前言:mybatis作为一个持久层的java框架,高度封装了jdbc原始代码,它拥有比Hiberante更便捷.更直接的sql语法和sql灵活配置的特性,比如简单的一个自动映射对象就大大减少了我们的代码,想起以前的时候,jdbc查询出来的数据,通过遍历ResultSet,然后再一个个的set进预置好的对象里,真的是大大减少了重复没有意义的代码.毫无疑问,myabits已经跻身于持久层框架的第一位,目前公司开发的项目大多摒弃Hiberanate,大势所趋为mybaits.今天我们就来聚焦myabi

mybaits实现oracle批量新增数据,回填主键

项目有需求,百度了很久,反正他们说的方法,我都没成功,我也不知道是不是我写代码的姿势不正确,没办法只能自己想法子了 我们这个项目用到了通过Mapper,通用Mapper里通过OracleProvider 实现批量插入,好像可以通过KeySql注解可以自动生成主键, 生成的sql里有这个 <bind name="country_idGenIdBind" value="@[email protected](record, 'countryId', @[email prote

Typescript : 遍历Array的方法:for, forEach, every等

方法一,for-of 这个貌似是最常用的方法,angular 2中HTML语法绑定也是要的这种语法. let someArray = [1, "string", false]; for (let entry of someArray) { console.log(entry); // 1, "string", false } for-in 官方文档上强调了for-in和for-of的区别: let list = [4, 5, 6]; for (let i in li

嘿!@野兽,你的ng api 掉了 - - angular.forEach

@野兽的 ng api 学习 -- angular.forEach angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关键或数组元素索引.为函数指定一个可选的上下文. 格式:angular.forEach(obj,iterator,[context]); obj:遍历的对象 iterator:迭代器 [content]: 对象为迭代器函数的上下文(t

【java8】慎用java8的foreach循环

虽然java8出来很久了,但是之前用的一直也不多,最近正好学习了java8,推荐一本书还是不错的<写给大忙人看的javase8>.因为学习了Java8,所以只要能用到的地方都会去用,尤其是Java8的Stream,感觉用起来觉得很方便,因为点点点就出来了,而且代码那么简洁.现在开始慢慢深入了解java8,发现很多东西不能看表面. 比如常规遍历一个集合,下面给出例子: 1.首先遍历一个List 方式1.一开始是这样的: public static void test1(List<Strin