+++
如图,这是老师的例程。
roleCodes 是一个String类型的列表,把它传进sql语句中,要怎么操作,才能返回一个列表出来?
+++
我只知道像: select * from User where id=#{id}; 这样的传入一个参数的语句。
请大神指教,谢谢
+++
List<CourseTaskStatus> selectTaskStatusByCourseIds(@Param("courseIds") List<Integer> courseIds, @Param("userId") int userId);
<select id="selectTaskStatusByCourseIds" resultMap="CourseTaskResultMap">
select
...
where chapter.course_id in
<foreach collection="courseIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
要看findAuthorityByRoleCodes这个函数怎么实现的,有两个可能性,一个是它支持传入一个List<string>,一个是它只能支持单个的string
如果是后者,那么得自己循环
List<string> result = new List<String>();
for (String s: roleCodes)
{
String r = findAuthorityByRoleCodes(s);
result.Add(r);
}
还有就是
for (int i = 0; i < roleCodes; i++)
{
if (i == 0)
strroleCodes = roleCodes[0];
else
strroleCodes = strroleCodes + "," + roleCodes[i];
}
然后对应的sql
select * from User where id in {#{strroleCodes}}
select authority_code from role_authority where find_in_set(role_id,#{roleIds}