java - 在 Java 中 - 如何将 resultSet 映射到复杂对象?

标签 java arrays json jdbc mapping

如何将几个表中的结果集映射到复杂的对象中? 让我详细说明一下:

假设我有这两个类(class):

public class User {
    private int user_id;
    private String fname;
    private String lname;
    //getters setters...
}

public class Country{
    private String country;
    private ArrayList<User> users;
    }

sql 查询:

从用户 U、国家/地区 C 中选择 *,其中 c.user_id = U.id

给我以下输出 -

id | fname | lname| country 
1  | Jack  | Levi |  USA
1  | Jack  | Levi |  UK
2  | Mike  | Brown|  Germany

如何将这些结果映射到 Country 类? 我需要从中创建一个 Json 字符串才能得到如下内容:

{
id : 1,
fname: "jack",
lname" "levi",
countries : {"USA", "UK"}
}

非常感谢!!

最佳答案

创建一个 HashMap,其中 user id 为键,user 为值。然后,当您处理结果集时,执行map.get(resultset.get(userid)),如果为空,则创建一个新用户,如果不是,则执行将用户附加到国家/地区的逻辑。

HashMap<Integer, User> users;
HashMap<String, Country> countries;
//inside the result set processing
User u = users.get(resultSet.get("id"));
    if(null != u) {
      //populate user here
    } else {
       Country c = countries.get(resultSet.get(country);
       c.users.add(u);
    }

关于java - 在 Java 中 - 如何将 resultSet 映射到复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28222040/

相关文章:

反序列化 JSON 时出现 C# 错误

C:允许将任何数组分配给指向不完整类型数组的指针

iPhone 崩溃,jsonData 参数为 NULL

java - 使用 DevicePolicyManager 在 Android 上隐藏应用程序

java - Appium Maven 项目无法运行到真实设备

java - 如何添加文本时钟小部件?

mysql - NSARRAY JSON 空

javascript - 返回 Json.Stringify 结果

arrays - Flutter - Json 对象数组

java - AF_UNIX 的整数值是多少?