<?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.example.dahua.dao.SearchDao" > <resultMap id="resultMap" type="com.example.dahua.bean.CheckIn"> <result column="arr" property="out" jdbcType="VARCHAR" /> <result column="iscuccess" property="isSuccess" jdbcType="INTEGER" /> </resultMap> <insert id="checkIn" parameterType="com.example.dahua.bean.CheckIn" statementType="CALLABLE" > {call AttendanceService( #{deviceId,mode=IN} , #{cardNo,mode=IN} , #{funNo,mode=IN}, #{flag,mode=IN} , #{checkTime,mode=IN}, #{out,mode=OUT,jdbcType=VARCHAR,resultMap=resultMap},#{isSuccess,mode=OUT,jdbcType=INTEGER,resultMap=resultMap} )} </insert> <resultMap id="User" type="com.example.dahua.bean.User" > <result column="school_id" property="schoolId" jdbcType="INTEGER" /> <result column="class_id" property="classId" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> <result column="student_id" property="studentId" jdbcType="INTEGER" /> </resultMap> <select id="selectUserByCardNum" parameterType="java.lang.String" resultMap="User"> select school_id , class_id ,name ,student_id from (select top 1 b.school_id, b.class_id, b.name, student_id from SZ_V_Card a inner join SZ_V_School_Student b on a.user_id = b.student_id and b.role_state = 1 where a.type = 2 and a.num = #{cardNum} union select top 1 b.school_id, 0 as class_id, b.name,b.teacher_id as student_id from SZ_V_Card a inner join SZ_V_School_Teacher b on a.user_id = b.teacher_id and b.role_state = 1 where a.type = 0 and a.num = #{cardNum} ) x </select> </mapper>