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

标签 java groovy

您好,我在 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/

相关文章:

groovy - 从代码中删除 S3 中的子目录, 'delimiter' 参数的定义,Groovy 中的代码

grails - MarkupBuilder 从字符串渲染

java - Android 首选项应用程序列表

java - 使用 Jsoup 获取第 n 个子元素

java - 如何使用 simpledateformat 将字符串转换为日期

上传加密 PDF 文件时出现 java.lang.ClassNotFoundException

grails - 存在该属性时获取groovy.lang.MissingPropertyException

java - 对 Java 规范中的泛型子类型感到困惑?

grails - 我如何在服务 grails 内的 Domain 中模拟 get 方法

mysql - GroovySql - 检索命名参数的值列表以与运算符中的 sql 一起使用