problems

title: MyBatis 遇到的坑 tags:

  • Java

  • MyBatis

    categories:

  • Java

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="biz_electrician">
    <!-- 设备解析函数 -->
    <select id="ammeter_parser" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
        SELECT
            *
        FROM    biz_devicegateway_instructions instructions
        INNER JOIN biz_device_elecmeter meter ON meter.gatewayID=instructions.gatewayID AND meter.num=instructions.num
        INNER JOIN biz_type_device devicetype ON devicetype.id = instructions.deviceID
        WHERE
            instructions.gatewayID=#{gatewayID} AND
            instructions.num=#{num}
    </select>

    <!-- 获取多条设备解析函数 -->
    <select id="ammeter_parser_list" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
        SELECT
        *
        FROM    biz_devicegateway_instructions instructions
        INNER JOIN biz_device_elecmeter meter ON meter.gatewayID=instructions.gatewayID AND meter.num=instructions.num
        INNER JOIN biz_type_device devicetype ON devicetype.id = instructions.deviceID
        WHERE
        instructions.gatewayID=#{gatewayID} AND
        instructions.num IN
        <foreach collection="nums"
                 open="(" close=")" separator="," item="num" index="index">
            #{num}
        </foreach>
    </select>

</mapper>
  • foreach

    <foreach collection="nums"
             open="(" close=")" separator="," item="num" index="index">
        #{num}
    </foreach>
    • collections : 传入列表(待循环列表)参数的变量名

  • resultType="java.util.HashMap" : resultType 指的是 select 返回的每一条记录的类型,而不是所有记录组成的类型

最后更新于

这有帮助吗?