java怎么返回字符串类型_【java】mybatis如何接收返回类型为Set<String> 呢

现在想接收返回值为Set 的列表,结果发现里面没有看到相关的方法,不知这种要如何处理呢?

尝试了

HashSet roles = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername",uname)

HashSet roles = sqlSessionTemplate.select("ShiroUser.findAllRoleNameByUsername",uname);

结果都报错,网上搜索也没能看到相关解决方案。

回答

返回参数写 resultType="String" 即可。

例如:

mapping.xml文件

select pk_id from user_operation order by create_time desc

mapper文件

Set selectPk();

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

Set result = this.mapper.selectPk();

System.out.println(result);

if (result.size() > 0) {

for (String id : result) {

System.out.println(id);

}

}

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

List roleList = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername", uname);

Set roleSet = new HashSet<>(roleList);

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

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

list不就行了, 反正一个值加个DISTINCT就好了一样不会重

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值