Mybatis中select返回类型

Mybatis中select返回类型

  1. 单一数据 ,数值类型,字符类型(字符串) ,布尔类型等等
  2. 返回一个对象(pojo ,vo等)
  3. 返回一个集合(类型都是List 集合)

1 select可以返回单一 一个值:

    // 单一数据用resultType属性 属性值用包装类写全称路径 ,尽量代码规范
    <select id="validateChooseMore" resultType="java.lang.Long">
		  SELECT
	max(t.count_sum) as max_count
   FROM (
	SELECT
		count(1) AS count_sum
	FROM
		xxoperation_class_course_line xccl,
		xxoperation_class_header xch,
		xxoperation_stu_choose_course xscc
	WHERE
		xccl.CLASS_HEADER_ID = xch.CLASS_HEADER_ID
		AND xscc.CLASS_ID = xch.CLASS_HEADER_ID
		AND xscc.STUDENT_ID = #{studentId}
		AND xscc.CLASS_ID = #{classId}
	GROUP BY
	xccl.COURSE_ID
	) t
  Long validateChooseMore(StuChooseCourse stuChooseCourse);

2 返回一个对象(vo ,pojo):

 <select id="findParentOrgUnitByCode" resultType="com.hand.hap.hr.dto.HrOrgUnit">
		SELECT
		houb.UNIT_ID AS unitId,
		houb.PARENT_ID AS parentId,
		houb.UNIT_CODE AS unitCode,
		houb.NAME AS name,
		houb.UNIT_TYPE AS unitType
		FROM hr_org_unit_b houb
		WHERE houb.UNIT_ID = #{parentId}
	</select>
 HrOrgUnit findParentOrgUnitByCode(Long parentId);

3 返回一个集合(类型都是List 集合)
resultType 自动匹配对应的值

//resultType 自动映射
<select id="findAppropriateEmployees" resultType="com.hand.hap.hr.dto.Employee">
        SELECT
        he.EMPLOYEE_ID AS employeeId,
        he.EMPLOYEE_CODE AS employeeCode,
        he.NAME AS name,
        he.BORN_DATE AS bornDate,
        he.EMAIL AS email,
        he.MOBIL AS mobil,
        he.JOIN_DATE AS joinDate,
        he.GENDER AS gender,
        he.CERTIFICATE_ID AS certificateId,
        he.STATUS AS status,
        he.ATTRIBUTE3,
        he.ATTRIBUTE4
        FROM hr_employee he,
        hr_employee_assign hea,
        hr_org_position_b hop
        LEFT JOIN xxmd_per_jobs xpj ON xpj.JOB_ID = hop.ATTRIBUTE1
        where hea.EMPLOYEE_ID = he.EMPLOYEE_ID
        AND hea.PRIMARY_POSITION_FLAG = 'Y'
        AND hea.ENABLED_FLAG = 'Y'
    </select>
 List<Employee> findAppropriateEmployees(List<ClassCondition> list,  Long classHeaderId);

自定义返回类型 resultMap属性值

<select id="findConditionsInfo" resultMap="BaseResultMap">
        SELECT
        xcc.*,
        xpj.JOB_NAME AS position_name,
        xmh.COURSE_NAME as pre_course_name,
        (SELECT scvb.TAG FROM sys_code_b scb,sys_code_value_b scvb WHERE scb.CODE = 'XXCOURSE_ENTRY_TERM'AND scb.CODE_ID
        = scvb.CODE_ID AND scvb.VALUE = xcc.ENTRY_TERM) AS ENTRY_TERM_DESC
        FROM
        xxoperation_class_condition xcc
        LEFT JOIN xxmd_per_jobs xpj ON xcc.POSITION_ID = xpj.JOB_ID
        LEFT JOIN xxcourse_management_header xmh on xmh.COURSE_ID = xcc.PRE_COURSE_ID
        <trim prefix="WHERE" prefixOverrides="AND | OR">
            <if test="classHeaderId!=null">
                xcc.CLASS_HEADER_ID = #{classHeaderId}
            </if>
        </trim>
    </select>
 <resultMap id="BaseResultMap" type="gtmc.hr.xxoperation.dto.ClassCondition">
        <result column="CLASS_CONDITION_ID" property="classConditionId" jdbcType="DECIMAL"/>
        <result column="CLASS_HEADER_ID" property="classHeaderId" jdbcType="DECIMAL"/>
        <result column="SOURCE_ID" property="sourceId" jdbcType="VARCHAR"/>
        <result column="STUDENTS_GROUP" property="studentsGroup" jdbcType="VARCHAR"/>
        <result column="QUALIFICATION_LEVEL_CODE" property="qualificationLevelCode" jdbcType="VARCHAR"/>
        <result column="POSITION_CATEGORY_CODE" property="positionCategoryCode" jdbcType="VARCHAR"/>
        <result column="POSITION_ID" property="positionId" jdbcType="DECIMAL"/>
        <result column="PROMOTION_TIME" property="promotionTime" jdbcType="DATE"/>
        <result column="PRE_COURSE_ID" property="preCourseId" jdbcType="DECIMAL"/>
        <result column="ENTRY_TERM" property="entryTerm" jdbcType="VARCHAR"/>
        <result column="COURSE_TYPE" property="courseType" jdbcType="VARCHAR"/>
        <result column="ENTRY_TERM_DESC" property="entryTermDesc" jdbcType="VARCHAR"/>
        <result column="PROGRAM_APPLICATION_ID" property="programApplicationId" jdbcType="DECIMAL"/>
        <result column="PROGRAM_UPDATE_DATE" property="programUpdateDate" jdbcType="DATE"/>
        <result column="POSITION_NAME" property="positionName" jdbcType="VARCHAR"/>
        <result column="PRE_COURSE_NAME" property="preCourseName" jdbcType="VARCHAR"/>
        <result column="ENTRY_METHOD" property="entryMethod" jdbcType="VARCHAR" />
    </resultMap>
List<ClassCondition> findConditionsInfo(ClassCondition dto);

至于 insert ,delete update 返回的都是数值类型 ()
insert 插入成功后 返回成功的数目 ,否则为-1
delete 删除成功后 返回成功的数目 ,否则为-1
update 删更改成功后 返回成功的数目 ,否则为-1

<delete id="deleteByClassHeaderId">
        DELETE
        FROM xxoperation_class_condition
        WHERE CLASS_HEADER_ID = #{classHeaderId}
    </delete>
Integer deleteByClassHeaderId(Long classHeaderId);
  <update id="updateByClassHeaderId">
        update 
           SET CLASS_HEADER_NAME=#{classHeaderName}
         FROM xxoperation_class_condition
        WHERE CLASS_HEADER_ID = #{classHeaderId}
    </update >
Integer updateByClassHeaderId(Long classHeaderId);

```java
  <insert id="saveClassHeaderId">
        insert into xxoperation_class_condition(CLASS_HEADER_ID,CLASS_HEADER_NAME)
         values ( #{classHeaderId}, #{classHeaderName}) 
    </insert>
Integer saveClassHeaderId(Long classHeaderId);
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值