Java数据库和ArrayList正在通过迭代器传递错误的值

Java数据库和ArrayList正在通过迭代器传递错误的值,java,database,jdbc,arraylist,Java,Database,Jdbc,Arraylist,我这里有点麻烦。基本上,我试图将一些整数传递到我的数据库中。如果数组列表包含30个数字,那么数据库实际上将填充30个整数,但问题是,存储在那里的整数是完全错误的。假设我的数组列表得到了这个数字[1 2 3 4 5],我的数据库存储的值类似于[0 2 0 3 5 6] try { for (int j : numbersList) { String message="INSERT INTO numbers (number) VALUES ('" + number

我这里有点麻烦。基本上,我试图将一些整数传递到我的数据库中。如果数组列表包含30个数字,那么数据库实际上将填充30个整数,但问题是,存储在那里的整数是完全错误的。假设我的数组列表得到了这个数字[1 2 3 4 5],我的数据库存储的值类似于[0 2 0 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
} 

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

您将ForEach和normal for loop混淆

如果您使用-for int j:numbersList,那么您需要使用Dinal解释的j


其他方面-对于传统for循环int j=0;jBeyond您应该始终使用参数化语句,而不要将字符串粘贴在一起,NumberList是否包含要插入的实际值?如果是这样的话,那你为什么要把j当作索引放回列表中?@chrylis该死的是的,我只是没看到。谢谢你的输入。事实上,我似乎混淆了传统的for循环和arraylist迭代器。无论如何,谢谢你,我是java新手;
String message="INSERT INTO numbers (number) VALUES ('" + j + "')";