用Java生成和返回动态类运行时

时间:2019-03-31 01:06:59

标签: java methods dynamic runtime generator

我实际上有诸如此类的可重复语句:

public ArrayList<User> getAllUser() {

    ArrayList<User> allData = new ArrayList<>();

    try {

        Connection conn = DBConnector.connect();

        Statement stmt = conn.createStatement();
        String sql = "SELECT * FROM data_user";
        ResultSet rs = stmt.executeQuery(sql);

        while (rs.next()) {
            User singleData = new User();
            singleData.setUsername(rs.getString("username"));
            singleData.setPassword(rs.getString("password"));
            singleData.setEmail(rs.getString("email"));
            singleData.setIdDivision(rs.getInt("id_division"));
            singleData.setAddress(rs.getString("address"));
            allData.add(singleData);
        }

        rs.close();
        stmt.close();
        conn.close();
    } catch (Exception se) {
        se.printStackTrace();
    }

    return allData;
}

我们都可以清楚地看到该代码。在 while-loop 内部,我的案子开始了。

在这里让我解释一下。在该 User 对象类的每个 instance 中,它都与列名(在mysql数据库列中)匹配。而其他对象类的其他变量实例也会发生这种情况。

但是我不知道我是否可以自动做到。因此, ResultSet过程:

  1. 获取字符串
  2. 获取整数
  3. 获取其他类型

也将是自动的。 包括该用户对象中的Setter方法,该方法最终进入arrayList 。所以我想知道是否有某种像这些代码一样运行的函数/库:

ResultBuilder rb = new ResultBuilder();
rb.setArrayContainer(allData);
rb.setResultSet(rs);
rb.setObjectClassData(User.class);
rb.execute();
allData = rb.getArrayContainerBack();

是否有可能:

  1. 执行手动的“用户/其他对象调用集”方法
  2. 手动进行方法获取值到列名(结果集)

任何人都可以通过 Java风味给我一个线索吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在询问ORM(对象关系映射)。 Java最受欢迎的是Hibernate:http://hibernate.org/