【Mybatis】多参数传递

1、单个参数

Dao层方法

   /**
     * 根据学号查询所有考试信息 findAllExamByCode
     * @param code
     * @return
     */
    List<MyExamModel> findAllExamByCode(String code);

Mapper对应内容

<select id="findAllExamByCode" parameterType="String" resultMap="MyExamModelMap">
	SELECT
		exam.course_id AS courseId,
		exam.starting_date AS startTime ,
		exam.ending_date AS  endTime,
		room.classroom_id AS roomId
	FROM
		t_examinee ee,
		t_examination_room_arrangement room,
		t_examination exam
	WHERE
	ee.examination_room_arrangement_id=room.id
	ANDroom.examination_id=exam.id
	ANDee.student_code=#{code}
</select>
<resultMap id="MyExamModelMap" type="com.dmsdbj.itoo.examinationEvaluation.entity.ext.MyExamModel">
	<!--property="实体中属性名称(保持一致)",column="查询结果中对应的字段名称(见Select查询结果字段)"-->
	<result property="courseId" column="course_id"/>
	<result property="startTime" column="starting_date"/>
	<result property="endTime" column="ending_date"/>
	<result property="roomId" column="classroom_id"/>
</resultMap>

2、Map封装多参数

Dao层方法

    /**
     * 根据学号查询本次考试详情 findExamByCode
     * @param map (time 查询时间,code 学生学号)
     * @return
     */
    ExamInfoModel findExamByCode(Map map)throws Exception;


Mapper对应内容

    <select id="findExamByCode" parameterType="java.util.Map" resultMap="ExamineeExamInfoModelMap">
        SELECT
            ee.id AS examineeId , -- 考生安排ID
            ee.student_code AS studentCode, -- 考生学号
            ee.student_exam_state AS studentExamState, -- 考生考试状态
            ee.student_ip AS studentIp,-- 考生IP
            ee.examination_room_arrangement_id AS examRoomId, -- 考场ID
            room.examination_room_name AS examRoomName, -- 考场名称
            exam.course_id AS courseId, -- 课程ID
            exam.examination_name AS examName, -- 考试名称
            exam.starting_date AS examStartTime, -- 考试开始时间
            exam.ending_date AS examEndTime, -- 考试结束时间
            exam.examination_type_id AS examTypeId, -- 考试类型ID
            exam.paper_or_template_id AS paperId, -- 试卷或模板ID
            tp.is_paper_or_template AS isTemplatePaper  -- 是试卷还是模板
        FROM
            t_examination exam,
            t_examination_room_arrangement room,
            t_examinee ee,
            t_template_paper tp
        WHERE
            room.examination_id = exam.id
            AND tp.id = exam.paper_or_template_id
            AND ee.examination_room_arrangement_id=room.id
            AND	CAST(#{time} AS TIME)>=CAST(exam.starting_date AS TIME)
            AND CAST(exam.ending_date AS TIME) >= CAST(#{time} AS TIME)
            AND exam.is_delete = "0"
            AND exam.is_calculate = "0"
            AND ee.is_delete="0"
            and room.is_delete="0"
            AND ee.student_code=#{code}
        ORDER BY exam.starting_date ASC LIMIT 1
    </select>
    <resultMap id="ExamineeExamInfoModelMap" type="com.dmsdbj.itoo.examinationEvaluation.entity.ext.ExamInfoModel">
        <result property="examineeId" column="examineeId"/>
        <result property="studentCode" column="studentCode"/>
        <result property="studentExamState" column="studentExamState"/>
        <result property="studentIp" column="studentIp"/>
        <result property="examRoomId" column="examRoomId"/>
        <result property="courseId" column="courseId"/>
        <result property="examName" column="examName"/>
        <result property="examStartTime" column="examStartTime"/>
        <result property="examEndTime" column="examEndTime"/>
        <result property="examTypeName" column="examTypeId"/>
        <result property="paperId" column="paperId"/>
        <result property="isTemplatePaper" column="isTemplatePaper"/>
    </resultMap>


调用层代码

3、注解传多参数@Param("参数名")

Dao层方法


Mapper对应内容


        List<ExamHandleQuestionTypeModel> findTypeById(@Param("id") String id, @Param("code") String code);

4、List封装in(List为具体数据)

Dao层方法


Mapper对应内容


调用层代码



public List<XXXBean> getXXXBeanList(List<String> list);  

<select id="getXXXBeanList" resultType="XXBean">
  select 字段... from XXX where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}  
  </foreach>  
</select>  

foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4') 

5、索引获得参数值

Dao层方法


Mapper对应内容


IDEA 中是从右向左为索引增加方向

网上有人说myeclipes是从左向右为索引增加方向


6、内部传递多个参数
sql语句套sql语句,在colum中以map形式传参{参数名1=参数值1,参数名2=参数值2,…}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值