gpt4 book ai didi

java - groovy 脚本/java 代码从结果集中获取不同的用户

转载 作者:行者123 更新时间:2023-12-01 15:30:11 25 4
gpt4 key购买 nike

您好,我在 Oracle 中对表运行一个简单的选择查询并获得结果集。就像从 mytable 中选择用户名、职责、项目。
结果集包含用户详细信息。每个用户名返回多行,具有不同的职责和项目值。现在我想从此结果集中获取一个列表列表,其中每个用户名有一个列表,并且不同的值连接在逗号分隔的字符串中。
因此,如果 Sam 在结果集中有多个条目,那么我的操作的输出应该给出:

UserList =
["Sam", "responsibility1,responsibility2,responsibility3...", "dept1,dept2,dept3.."],
[Some other User],
[and so on..]

稍后我会将其写入 csv 文件。
出于兼容性原因,我无法在查询本身中执行此操作,我们将来必须支持多个数据库、多个版本。
如何在 java 或 groovy 中执行此操作?

谢谢

最佳答案

Java 非常简单。您需要一个类来为每个用户建模。您需要一个用户名到用户的映射。每个用户都包含一个责任列表和一个部门列表。然后迭代结果集,从每行的 map 中找到用户,并将职责和部门添加到该用户

您需要代码吗?或者代码足够了吗?

HTH

编辑:这是一些 Java 起始代码:(未检查语法或错误;])

public class User {
private final List<String> responsibility = new ArrayList<String>();
private final List<String> department = new ArrayList<String>();

...standard getters and setters
}

// Your code to do the read
public void executeRead() {

... obtain the resultset somehow here

Map<String, User> usernameToUser = new HashMap<String, User>():
while (rs.next) {
String username = rs.getString("username");
User user = usernameToUser.get(username);
if (user == null) {
user = new User(); // Create and remember a user the first time you see them
usernameToUser.put(username, user);
}
String responsiblity = rs.getString("responsiblity");
String department = rs.getString("department");
user.addResponsibility(responsibility);
user.addDepartment(department);
}
rs.close();

// Now you have the data structure of users in memory you can output
// it in whichever format you like e.g. HTML, CSV, etc
// Probably best to do this step in a totally separate place that can
// be switched out for a different output format in future.
}

关于java - groovy 脚本/java 代码从结果集中获取不同的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com