在Mybatis中使用注解@多个参数查询

@Select("SELECT * FROM wc_homework WHERE organization_id=#{classId} ORDER BY createtime DESC LIMIT #{start},#{count}")

@Results({

@Result(column = "course_id", property = "course_id"),

@Result(column = "homework_id", property = "homework_id"),

@Result(column = "organization_id", property = "organization_id"),

@Result(property = "course", column = "course_id", one = @One(select = "selectCourse")),

@Result(property = "viewTotalNum", column = "organization_id", one = @One(select = "SelectStudentCount")),

@Result(property = "attachments", javaType = List.class, column = "homework_id", many = @Many(select = "selectAttachments")),

@Result(property = "viewNum",column = "{homework_id = homework_id,organization_id = organization_id}",one = @One(select = "selectViewCounts")),

@Result(property = "feedbackNum",column = "{homework_id = homework_id,organization_id = organization_id}",one = @One(select = "selectFeedbackCounts"))

})

List<HomeworkExt> selectByClassId(@Param("classId") Long classId, @Param("start") int start, @Param("count") int count);

上面的 @Result(property = "feedbackNum",column = "{homework_id = homework_id,organization_id = organization_id}",one = @One(select = "selectFeedbackCounts"))

最后一行,通过传入两个参数查询:对应下面的Map键值对。

@Select("SELECT COUNT(DISTINCT f.user_id)  FROM wc_homework_log_see ws INNER JOIN \n" +

"(SELECT wu.user_id, wf.`family_user_id` FROM wc_organization_user wu INNER JOIN wc_family wf ON wu.`user_id` = wf.`student_id` \n" +

"WHERE wu.`organization_id` = #{organization_id} AND wu.`role_id` = 4) f ON f.family_user_id = ws.`user_id` \n" +

"WHERE ws.`homework_id` = #{homework_id}")

int selectViewCounts(Map<String,Object> map);

在Mybatis中使用注解@多个参数查询,布布扣,bubuko.com

时间: 2024-12-21 07:18:51

在Mybatis中使用注解@多个参数查询的相关文章

MyBatis中使用注解进行selectKey的查询

1.定义接口类,方法中添加注解查询 package cn.et.mybatis.lesson02.selectKey; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.SelectKey; public interface KeyAnnoMapper { /* * statement="sel

myBatis中的注解@Param、返回值为Map、JAVA读取Excel并解析文本、Class.getResource()和ClassLoader.getResource()

myBatis中的注解@Param:http://blog.csdn.net/gao36951/article/details/44258217:  http://www.cnblogs.com/thomas12112406/p/6217211.html. myBatis返回值为Map:http://blog.csdn.net/werewr342352321df/article/details/11892755. ====================== JAVA读取Excel并解析文本:h

@Param注解在mybatis中的使用以及传入参数的几种方式(转)

第一种: Dao层的方法 <span style="font-size:12px;">Public User selectUser(String name,String password);</span> 对应的Mapper.xm <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_nam

Mybatis中如何将POJO作为参数传入sql

今天在工作时,需要将获取的用户的注册信息插入数据库,开始的做法是将所有的model的属性作为DAO接口的参数,后来想想不对劲,要是有100个属性,那我这个接口岂不是要有100个参数传进来? 于是我就考虑将整个Model或者DTO作为DAO接口的参数,向SQL传参,具体的实现如下: (1)定义DAO接口: 1 @Repository 2 public interface ProjectDtoMapper { 3 4 void addProject(@Param("projectDto")

MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的.即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解.但是,在你总结出规律之前,你可能会觉得莫名其妙,有的时候一个参数明明不用添加 @Param 注解,有的时候,却需要添加,不添加会报错. 有的人会觉得这是 MyBatis 各个版本差异的锅,不可否认,MyBatis 发展很快,不同版本之间的差异还挺明显的,不过这个加不加 @Param 注解的问题,却并不是版

Mybatis中@param注解

以前没见过在dao层方法参数前面加@param注解,如 int getInstance( @param("orderId") String id,  @param("createTime") String time), 以前只用过int getInstance( String id,  String time),所以感觉很奇怪,在网上查资料,然后自己在实际编程中实践了一下,发现加上 @param就是为了给参数命名,如给id命名为orderId,这样xml文件就可以通

springmvc中@requestbody注解接收请求参数

一.POST请求的四种常用方式 1.application/x-www-form-urlencoded 浏览器原生的表单,值为urlencoded之后的  key1=value1&key2=value2...... 2.multipart/form-data 浏览器原生的文件表单,用于传输文件 3.application/json 常用的请求头格式,值为json串  {"key1":"value1","key2":"value2

Mybatis查询实例,sql中的in在Mybatis中怎么写--以list为查询条件

在service中把参数放到HashMap中 List<String> list = new ArrayList<String>(); list.add("x"); list.add("y"); list.add("z"); String s = "A" Date d = new Date(); HashMap<String,Object> param = new HashMap<St

关于mybatis中llike模糊查询中#和$的使用

在mybatis中经常要写到like 查询,以前从来没有遇到什么问题,突然遇到一个问题,找了好长时间没找到,最后找到了,是关于#和$的使用的,总结如下: name like  表达式    and    falg=#{falg} 本次示例中共两个条件,一个是name  like  表达式, 还有flag相等,这个是使用#{}占位符,没有任何问题,关键问题就是 表达式的书写.下面来研究下表达式的书写: 如果写成'%#{name}%' ,就会报错Parameter index out of rang