Java Database和ArrayList通过迭代器传递错误的值

时间:2014-06-04 12:39:46

标签: java database jdbc arraylist

我在这里遇到了一些麻烦。基本上我试图将一些整数传递给我的数据库。如果数组列表允许说包含30个数字,那么数据库确实会填充30个整数,但问题是,存储在那里的整数是完全错误的。假设我的数组列表得到了这个数字[1 2 3 4 5],我的数据库存储的值如[0 20 3 5 6]。

try
{
    for (int j : numbersList) 
    {

        String message="INSERT INTO numbers (number) VALUES ('" + numbersList.get(j) + "')";

        System.out.println("Query executed : " + message);
        conn.setAutoCommit(false); 
        stat.executeUpdate(message);
        conn.commit();

    }

    System.out.println(numbersList);

} 
catch (SQLException ex) 
{
    //do stuff
} 

2 个答案:

答案 0 :(得分:2)

String message="INSERT INTO numbers (number) VALUES ('" + j + "')";

试试这个。您使用j作为索引。因此,如果第一个元素是3,它将采用列表中的第4个元素。

答案 1 :(得分:2)

你对ForEach和正常的循环

感到困惑

如果您正在使用 - for (int j : numbersList) - 那么您需要使用j作为Dinal解释。

其他方面 - 对于传统的循环(int j=0;j<numbersList.size();j++) - 您的代码很好 - numbersList.get(j)