1、mapper接口类的方法
List<InterviewRecordStatisticsVO> selectInterviewStatisticsByMonth(InterviewRecordStatisticsDTO dto);
2、传递给mybatis的参数封装类
import java.util.Date;
import com.ejoyst.common.model.dto.bappapi.base.PagerDto;
public class InterviewRecordStatisticsDTO extends PagerDto {
private Integer total;
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
}
3、mapper的xml
<!-- 返回结果集 -->
<resultMap id="InterviewRecordStatisticsVOResultMap" type="com.ejoyst.common.model.vo.bweb.interview.InterviewRecordStatisticsVO">
<id column="id" property="id" />
<result column="currentDay" property="time" />
<result column="post_id" property="postId" />
<result column="user_id" property="userId" />
<result column="name" property="userName" />
<result column="mobile" property="mobile" />
<result column="shop_id" property="shopId" />
<result column="shop_name" property="shopName" />
<result column="total" property="taskTotal" />
<result column="finishTotal" property="taskFinishTotal" />
<result column="ratio" property="ratio" />
</resultMap>
结果集映射到vo类,这里不把类展示出来了
调用存储过程
<select id="selectInterviewStatisticsByMonth" resultMap="InterviewRecordStatisticsVOResultMap" statementType="CALLABLE">
CALL interviewStatisticsByMonth(#{total,mode=OUT,jdbcType=INTEGER})
</select>
调用存储过程,其中要指定是statementType="CALLABLE"调用存储过程
resultMap指定返回结果集
#{total,mode=OUT,jdbcType=INTEGER}指定是存储过程输出参数,必须指定jdbcType=INTEGER,类型要跟java类型一一对应
4、执行mapper调用语句后,存储过程的输出参数total会自动赋值到dto的total属性中
interviewRecordMapper.selectInterviewStatisticsByDate(dto)
5、Mybatis中javaType和jdbcType对应关系
JDBCType JavaType
CHAR String
VARCHAR String
LONGVARCHAR String
NUMERIC java.math.BigDecimal
DECIMAL java.math.BigDecimal
BIT boolean
BOOLEAN boolean
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
REAL float
FLOAT double
DOUBLE double
BINARY byte[]
VARBINARY byte[]
LONGVARBINARY byte[]
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
CLOB Clob
BLOB Blob
ARRAY Array
DISTINCT mapping of underlying type
STRUCT Struct
REF Ref
DATALINK java.net.URL[color=red][/color]