用Java在ArrayList中存储MySQL数据库项
我正在使用JDBC连接我的MySQL数据库,我需要检索表中的所有项并将它们存储在ArrayList中。以下是我正在使用的代码:用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.
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
}