为了账号安全,请及时绑定邮箱和手机立即绑定

mybatis如何接收返回类型为Set<String> 呢

mybatis如何接收返回类型为Set<String> 呢

慕标5832272 2019-03-01 10:31:36
现在想接收返回值为Set<String> 的列表,结果发现里面没有看到相关的方法,不知这种要如何处理呢?尝试了 HashSet<String> roles = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername",uname) HashSet<String> roles = sqlSessionTemplate.select("ShiroUser.findAllRoleNameByUsername",uname); 结果都报错,网上搜索也没能看到相关解决方案。
查看完整描述

5 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

返回参数写 resultType="String" 即可。
例如:
mapping.xml文件

<select id="selectPk" resultType="String">
  select pk_id from user_operation order by create_time desc 
</select>

mapper文件

Set<String> selectPk();

获取数据,比如直接写在Controller中

Set<String> result = this.mapper.selectPk();
        System.out.println(result);
        if (result.size() > 0) {
            for (String id : result) {
                System.out.println(id);
            }
        }
查看完整回答
1 反对 回复 2019-03-01
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

MyBatis是直接返回List的,可以直接像 @Rebuilding127 的回答使用Mapper类配置来做自动List转换Set。如果要用SqlSession来读取数据的话,可以自动做List到Set的转换,即:

List<String> roleList = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername", uname);
Set<String> roleSet = new HashSet<>(roleList);
查看完整回答
反对 回复 2019-03-01
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

mybatis源码里面就没有返回值为set的接口,这个现实不了的,只能自己来做逻辑处理了

查看完整回答
反对 回复 2019-03-01
?
莫回无

TA贡献1865条经验 获得超7个赞

自己处理一下吧,没有直接返回set的

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 8376 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号