java - 使用 DB2 Select from Table 时出现异常

标签 java jdbc netbeans db2 sqlexception

我不断收到“java.sql.SQLException:未找到列 'id'”。当尝试使用 Netbeans 上的 DB2 从表中进行选择时。这是我的表创建代码:

string="CREATE TABLE PlayerCollection "
                + "(id integer not null GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),"
                + "name varchar(20),"
                + "height varchar(20),"
                + "weight varchar(20),"
                + "position varchar(20),"
                + "team varchar(20),"
                + "PRIMARY KEY (id))";

这是我从表中选择的代码:

String sql = "select name, height, weight, position, team from PlayerCollection "
                        + "where id=" + strIndex;

即使“id”明显存在于我的表中,为什么我会收到此异常?如何解决此问题?
实际上我的错误似乎是在这一行:

int ind = rs.getInt("id");

这里“rs”是一个结果集。

最佳答案

结果集仅包含您选择的列,因此您必须在选择列表中包含列 id:

String sql = "select id, name, height, weight, position, team from PlayerCollection "
           + "where id=" + strIndex;

或者由于您在 WHERE 子句中使用的变量 strIndex 中有 id 的值,因此只需删除该行:

int ind = rs.getInt("id");

从您的代码中,或将其更改为:

int ind = Integer.parseInt(strIndex);

关于java - 使用 DB2 Select from Table 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337997/

相关文章:

java - Spring & JDBC 事务 : How to ensure isolation level SERIALIZABLE in a DAO object?

java - 如何在 Android 中发现我的应用程序的内存使用情况?

java - 作为部署安装时的 jboss-eap-6.1 oracle 驱动程序定义

java - 带注释的剩余过滤器

Eclipse 3.2 中的 java 服务器界面

java - JAVA JDBC 如何根据两列的条件从表中删除?

java - 如何在Struts Action 类中使用DataSource?它给出了编译错误 "Type mismatch"

mysql - 不小心删除了mysql数据库

java - 在netbeans中创建文件夹结构(不是新项目)

java - 从 netbeans 导出 .jar 文件后,Jpos 打印机无法工作