查询出来返回map,进行mp的解析即可
<select id="getAllCreateDramaRole" parameterType="String" resultType="java.util.Map">
select t.style_id,t.id,t.name,t.image,t.is_rm,t.type,case t.type when 0 then '沉浸式' else '娱乐式' end type_name,CONCAT(t.number,'人')number,concat(t.all_time,'分钟') all_time,
t.remark,t.price,t.flag,t.ndfs,t.shangjia,t.bohui,t.tijiao,t.tijiaos,
(SELECT w.dict_label FROM `sys_dict_data` w where dict_code=t.level ) level_name,
(SELECT w.dict_label FROM `sys_dict_data` w where dict_code=t.player_level ) player_level_name
from ktv_dramas t
<where>
t.create_drama=1
<if test="name != '' and name != null">and t.name like concat ('%',#{name},'%')</if>
<if test="shangjia != '' and shangjia != null">and t.shangjia #{shangjia}</if>
<if test="bohui != '' and bohui != null">and t.bohui =#{bohui}</if>
<if test="tijiao != '' and tijiao != null">and t.tijiao=#{tijiao}</if>
<if test="flag != '' and flag != null">and t.flag=#{flag}</if>
<if test="tijiaos != '' and tijiaos != null">and t.tijiaos=#{tijiaos}</if>
</where>
</select>
查询数组遍历直接出集合
<select id="selectstylee" resultType="java.lang.String" parameterType="arraylist">
SELECT name FROM `ktv_style` where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</select>
根据集合进行解析
List<Map> li =dramasMapper.getAllCreateDramaRole(name, tijiao, bohui, shangjia, flag, tijiaos);
if (li.size()>0){
for (Map map : li) {
String style_id = map.get("style_id").toString();//获取map的String值"[2,3,4]"
//String[] split = style_id.split(",");
String substring = style_id.substring(1, style_id.length() - 1);//把[2,3,4]外的引号去掉
String[] split = substring.split(",");//根据逗号进行切分出String数组
int[] array = Arrays.stream(split).mapToInt(Integer::parseInt).toArray();//String值类型的数组,转换类型为int类型的数组
System.out.println("style"+array);
List<String> selectstylee = dramasMapper.selectstylee(array);//拿着int类型的数组查询集合
String join = StringUtils.join(selectstylee.toArray(), "、");//把集合转为顿号隔开的string字符串。
map.put("style_name",join);
}
}