如何在不知道其类型的情况下实例化Java对象?

时间:2018-04-20 13:57:47

标签: java mysql json jdbc resultset

我正在做一个数据库项目,我正在将Java连接到MySQL数据库。

在此之后,我的同事必须将Java连接到服务器,并且试图让他的工作更轻松我试图转换ResultSet,数据库自己返回JSON。

我正在使用JsonSimple 1.1 API,并且我试图避免为每个数据库表创建大量方法。我的想法是尝试创建一个方法,将正确的类型和名称转换为JSON。 这是我的代码:

(...)                                                                    
ResultSet resultSet = statement.executeQuery();
ResultSetMetaData rsmd = resultset.getMetaData();

// Treat the results and tranform to JSON.
while(resultset.next())
{
    Class<?> objectClass;
    JSONObject obj = new JSONObject();

    for (int i=1; i <= rsmd.getColumnCount(); i++) {
        objectClass = SQLTypeMap.toClass(rsmd.getColumnType(i));

        // This is what I thought would work. As you can guess, it doesn't. 
        obj.put(rsmd.getColumnName(i), new objectClass(resultset.getString(i)));
    }
    result.add(obj);
(...)

SQLTypeMap是我创建的一个类,它将SQL类型映射到Java类并返回类本身。

我的问题很简单:有没有什么办法可以在运行前不知道它的类型就可以实例化一个新的Java类?如果是这样,怎么样?

谢谢。

0 个答案:

没有答案