SQLException";列';java.lang.Integer';“未找到”;从结果集读取时
我正在尝试做一些基本的ResultSet到JSONArray的转换 有关守则如下: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
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不客气。如果这个答案有用,请考虑一下。