SQLException";列';java.lang.Integer';“未找到”;从结果集读取时

SQLException";列';java.lang.Integer';“未找到”;从结果集读取时,java,jdbc,resultset,Java,Jdbc,Resultset,我正在尝试做一些基本的ResultSet到JSONArray的转换 有关守则如下: ResultSetMetaData rsmd = rs.getMetaData(); JSONObject obj = new JSONObject(); String column_name = rsmd.getColumnClassName(1); if(rsmd.getColumType(i) == java.sql.Types.Integer) { obj.put(column_name, r

我正在尝试做一些基本的ResultSet到JSONArray的转换

有关守则如下:

ResultSetMetaData rsmd = rs.getMetaData();
JSONObject obj = new JSONObject();

String column_name = rsmd.getColumnClassName(1);

if(rsmd.getColumType(i) == java.sql.Types.Integer) {
    obj.put(column_name, rs.getInt(column_name));
}
当我将代码发布到web服务器并点击页面时,它会抛出以下错误:

java.sql.SQLException: Column 'java.lang.Integer' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1073)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2571)
at com.sun.gjc.spi.base.ResultSetWrapper.getInt(ResultSetWrapper.java:482)
at com.pododdle.util.ToJSON.toJSONArray(ToJSON.java:58)
atcom.pododdle.restful.resources.CategoryResource.returnCategories(CategoryResource.java:44)
这有点疯狂,因为它抱怨找不到java.lang.Integer——一个核心java类

当我使用字符串等价物并说它也找不到java.lang.string时,它也失败了

请帮忙。我开始失去理智了


PS我不知道这是否相关,但Maven没有自动更新我想要的任何新依赖项,所以我手动添加了它们。我不知道这是否表明我的安装中有一个更大的弊病——这是非常新鲜的——昨天才在我的新机器上安装了eclipse等。

您正在使用
rsmd.getColumnClassName(1)
作为列名。现在很明显,该方法返回该列的类的名称。在您的例子中,此列存储一个整数值,因此返回
java.lang.integer
。尝试改用获取列的名称。

请注意错误消息。它并不是说Java找不到类
Java.lang.Integer
,而是说SQL找不到列
Java.lang.Integer
。另外,要更新maven依赖项,请在pom文件的位置执行“mvn干净安装”。这是由印刷错误造成的,应该关门了。万分感谢——我是瞎子。非常愚蠢。@TomO'Brien不客气。如果这个答案有用,请考虑一下。