SQL结果集封装对象中有个map问题

上一个问题描述错误了,现在重新提。
实体类


@Data
public class Student {
    private String classroom;
    private Map<String, String> info;
}
 

数据库中的数据结构

id    classroom   name     address
1          一班       张三       江苏无锡
2          一班       李四       江苏南通
3          二班       王五       北京
4           二班      赵六       上海

从数据库中查出来后展现出来的结构

Map<String, String> map1 = new HashMap<>();
        map1.put("张三", "江苏无锡");
        map1.put("李四", "江苏南通");

        Map<String, String> map2 = new HashMap<>();
        map2.put("王五", "北京");
        map2.put("赵六", "上海");

        Student student1 = new Student("一班", map1);
        Student student2 = new Student("二班", map2);

        List<Student> list = new ArrayList<>();
        list.add(student1);
        list.add(student2);

        System.out.println("list = " + list);


list = [Student(classroom=一班, info={李四=江苏南通, 张三=江苏无锡}), Student(classroom=二班, info={王五=北京, 赵六=上海})]

问:
如果不通过Service层循环遍历结果集实现该功能,最好不要使用

jdbcTemplate.query( "select * from student",  new StudentResultSetHandler())

这种硬编码方式,而是

<select id="find" resultType="com.example.handler.domain.Student">
        SELECT classroom, name, address FROM student
    </select>

这种的

对不起各位,要求有点多,关键是那种的看不懂,也没看到公司有在用这种模式,等以后经验多了,再回来研究那种写法。

img


看一下这样是不是能实现你想要的结果

  • 以下回答由chatgpt基于相关博客总结生成:

    抱歉,您提供的问题描述中并未明确指出具体的需求和问题,因此无法给出具体的解决方案。如果您能够提供更具体的细节信息和需求,我可以尝试为您提供更准确的帮助和解决方案。

感觉你dao层用的应该是mybatis,你的需求其实就是一个一对多的级联查询而已。参考这个博客