''''''''''''' 2023-03-15 11:06 采纳率: 66.7%
浏览 30
已结题

关于SQL语句查询返回Map值错误的问题

从数据库查询corp_id和set_date两个字段希望返回值是Map类型并且以corp_id为key以set_date为值,但是最后的结果是corp_id为key,(corp_id,set_date)整个作为值,那么若只要得出Map<String,String>或者Map<String,Date>的返回类型应如何修改?

img


接口

img


产生的错误

img

  • 写回答

4条回答 默认 最新

  • MarkHan_ 2023-03-15 11:27
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    你可以尝试使用SQL中的CONCAT函数来将corp_id和set_date拼接为一个字符串,然后再以corp_id作为Map的key,拼接后的字符串作为Map的value。具体的SQL语句如下:

    SELECT corp_id, CONCAT(corp_id, '_', set_date) as set_date_str FROM your_table;
    
    
    

    这里使用了下划线将corp_id和set_date拼接起来,你也可以选择其他的分隔符,只要能够将拼接后的字符串唯一地对应到每一行的记录即可。

    在Spring Boot中,你可以使用JdbcTemplate来执行SQL语句,并将查询结果封装为Map类型的对象。代码示例如下:

    @Autowired
    private JdbcTemplate jdbcTemplate;
    
    public Map<String, String> queryMap() {
        List<Map<String, Object>> rows = jdbcTemplate.queryForList("SELECT corp_id, CONCAT(corp_id, '_', set_date) as set_date_str FROM your_table");
        Map<String, String> resultMap = new HashMap<>();
        for (Map<String, Object> row : rows) {
            resultMap.put((String)row.get("corp_id"), (String)row.get("set_date_str"));
        }
        return resultMap;
    }
    
    
    

    在这个示例中,使用JdbcTemplate执行SQL语句并得到查询结果。然后使用for循环遍历查询结果,将每行的记录按照corp_id为key,set_date_str为value存入Map对象中。最终返回Map对象即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助