mybatis-复杂查询

1、自定义provider类构造sql语句,type 属性用于指定获取sql语句的指定类,method 属性用于指定类中要执行获取sql语句的方法,在xxxProvider类中必须使用Map对象接收参数或者是当前类对象作为参数。

@SelectProvider(type=xxxx.class,method=”xxxx”) 

public class SearchCoursesSearch {
	private String userUid;
	private String categoryCode;
	private String courseName;
	private int pageNo;
	private int pageSize;
	private String type;
	public String getSql(SearchCoursesSearch course){
		StringBuffer sql=new StringBuffer();
		//动态拼接sql

        //返回拼接的sql
        return sql.toString();
    }
}

2、@ResultMap()注解

可以直接引用mapper.xml中的结果集id

或者是直接将参数拼接在注解里,参照mybatisAPI

@SelectProvider(type = SearchCoursesSearch.class,method = "getSql")
	@ResultMap("CourseResultMap")
	List<Course> searchCourses(SearchCoursesSearch course);

//对应的xml文件

 <resultMap id="CourseResultMap" type="com.joydo.gfk.entity.Course">
    <id property="courseId" column="course_id"></id>
    <result property="courseName" column="course_name"></result>
    <result property="level" column="level"></result>
    <result property="courseDesc" column="course_desc"></result>
    <result property="courseType" column="course_type"></result>
    <result property="testId" column="test_id"></result>
    <result property="requireStudyMinute" column="require_study_minute"></result>
    <result property="favCnt" column="fav_cnt"></result>
    <result property="courseStatus" column="course_status"></result>
    <result property="mustLearn" column="must_learn"></result>
    <result property="publishBy" column="publish_by"></result>
    <result property="publishTime" column="publish_time"></result>
    <result property="startTime" column="start_time"></result>
    <result property="endTime" column="end_time"></result>
    <result property="updateTime" column="update_time"></result>
    <result property="h5IndexPage" column="h5_index_page"></result>
    <result property="praise" column="praise"></result>
    <result property="image" column="image"></result>
    <result property="fav" column="fav"></result>
    <result property="studyStatus" column="study_status"></result>
    <result property="studyCnt" column="study_cnt"></result>
    <result property="praiseCnt" column="praise_cnt"></result>

    <collection property="userTest" ofType="UserTest">
      <id property="testId" column="test_id"></id>
      <result property="testStatus" column="test_status"></result>
    </collection>
    <collection property="userCourse" ofType="UserCourse">
      <id property="courseId" column="course_id"></id>
      <result property="fav" column="fav"></result>
      <result property="studyStatus" column="study_status"></result>
      <result property="elStatuyStatus" column="is_pass"></result>
    </collection>
  </resultMap>

3、mapper文件直接引用

/**
	 * @creater  yfc
	 * @date  2019/05/08 16:26:33
	 * @describle
	 */
	@SelectProvider(type = SearchCourseLivesSearch.class,method = "getSql") //对应provider中自定义的sql
	@ResultMap("CourseLiveResultMap")   //对应mapper.xml文件的自定义集合
	List<CourseLive>searchCourseLives(SearchCourseLivesSearch course);

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值