это мой код для хранения arraylist в базе данных, но я столкнулся с проблемой, которая только первый элемент arraylist хранится в базе данных. Просьба помочьмагазин arraylist в базе данных оракулов
int invoice_no,bookno;
static ArrayList<Integer> reference=new ArrayList<>();
static ArrayList<Integer> quantity2 = new ArrayList<>();
public void abc1()
{
try
{
System.out.println("hello");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","anchit");
Statement statement=connection.createStatement();
ResultSet r1=statement.executeQuery("select max(invoice_no) from invoice_detail");
int a=1;
while(r1.next())
{
a=r1.getInt(1);
System.out.println(r1.getInt(1));
}
System.out.println("a="+a);
invoice_no=a+1;
if(invoice_no%50==0)
bookno=(invoice_no/50);
else
bookno=(invoice_no/50)+1;
System.out.println(invoice_no+","+bookno);
System.out.println(reference);
for(int i=0;i<reference.size();i++)
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection1=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","anc123hit");
Statement statement1=connection1.createStatement();
//int b=
System.out.println(reference.get(i));
//int c=quantity2.get(i);
ResultSet r=statement1.executeQuery("insert into invoice_detail values("+invoice_no+","+bookno+","
+reference.get(i)+","+quantity2.get(i)+", to_char(sysdate,'dd-mon-yy'),'anchit','abcd')");
r.next();
connection1.close();
}
connection.close();
}
catch(Exception e)
{}
}
это мой код для хранения ArrayList в базе данных, но я перед некоторые проблемы только первый элемент ArrayList хранится в базе данных. Просьба помочь
проверки размера 'reference'. Также избегайте загрузки драйвера и объекта соединения внутри цикла 'for' – Rustam
Никогда, ** никогда ** не создавайте запросы, используя конкатенацию String. Это была невероятно плохая практика в течение многих лет и открывает вам SQL-инъекции, а также многочисленные, трудно диагностировать, ошибки. ** Всегда ** используйте 'PreparedStatement'. –
Кроме того, этот 'catch (Exception e) {}' является очень серьезным нарушением во многих домах разработки. Ожидайте официальный выговор, если вы когда-либо совершаете код в VCS с пустым блоком catch. ** Никогда не используйте пустой блок catch **. Вы проглотили ошибку, а затем попросили нас угадать, что это может быть. –