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