用Java在ArrayList中存储MySQL数据库项

用Java在ArrayList中存储MySQL数据库项,java,mysql,jdbc,arraylist,Java,Mysql,Jdbc,Arraylist,我正在使用JDBC连接我的MySQL数据库,我需要检索表中的所有项并将它们存储在ArrayList中。以下是我正在使用的代码: Connection con; Statement statement; ResultSet resultSet; ArrayList<String> inventorySet = new ArrayList<String>(); ResultSetMetaData md; try { Class.forName("com.mysql.

我正在使用JDBC连接我的MySQL数据库,我需要检索表中的所有项并将它们存储在ArrayList中。以下是我正在使用的代码:

Connection con;
Statement statement;
ResultSet resultSet;
ArrayList<String> inventorySet = new ArrayList<String>();
ResultSetMetaData md;

try
{
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection(url, root, password);

    statement = con.createStatement();
    resultSet = statement.executeQuery("SELECT inventory FROM inventory");
    md = resultSet.getMetaData();
    for(int i = 1; i <= md.getColumnCount(); i++)
    {
        inventorySet.add(resultSet.getString(i));
    }
}catch(ClassNotFoundException e)
    {
        e.printStackTrace();
    }catch(SQLException e)
{
    e.printStackTrace();
}

如何修复此问题?

您需要执行
resultSet.next()在尝试从行访问数据之前。根据您的查询,您正在从表“库存”中选择1列“库存”。所以我不确定为什么会得到列计数,因为只有一列

此外,如果要循环所有记录,应使用如下循环:

while(resultSet.next())
{
    //code here
}
while(resultSet.next())
{
    //code here
}