Это мой вывод на консоль:
`[10, name, N, 11-11, Address, 12, City, XX, 123-123-123, 321-321-321, maaaail]
INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, ZIP, ADDRESSLINE1, ADDRESSLINE2, CITY, STATE, PHONE, FAX, EMAIL) VALUES (10','name','11-11','Address','12','City','XX','123-123-123','321-321-321','maaaail)
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "\',\'" at line 1, column 117.`
И это мой код:
System.out.println(Arrays.toString(dane));
sql = "INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, ZIP, ADDRESSLINE1, ADDRESSLINE2, CITY, STATE, PHONE, FAX, "
+ "EMAIL) VALUES (" + dane[0] + "','" + dane[1] + "','" + dane[3] + "','" + dane[4] + "','"
+ dane[5] + "','" + dane[6] + "','" + dane[7] + "','" + dane[8] + "','" + dane[9] + "','" + dane[10] + ")";
System.out.println(sql);
^^ подробнее: bobby-tables.com
Также в начале значений отсутствует цитата.
Да, этот код уязвим для SQL-инъекция - вы никогда не должны использовать конкатенацию строк для операторов SQL (в производственном коде)
Вы пропустили много цитат. Я предлагаю вам использовать форматированную строку, построитель строк или построитель SQL для создания вашего запроса.
Что, если какие-либо из ваших строковых значений сами по себе содержат одинарные кавычки? Не обрабатывайте значения запроса как исполняемый код, обрабатывайте их как значения. Используйте подготовленные операторы с параметрами запроса. Это более безопасно, чище, проще в обслуживании, быстрее и с меньшим количеством ошибок.
Вам также не хватает цитаты в начале (" + dane[0] + "','" +. И я полностью поддерживаю рекомендацию @YCF_L о том, чтобы вы использовали привязку операторов, а не просто добавляли необработанные значения. Вы широко открыты для инъекционной атаки.
Для этого существует имеет как канонический дупетаргет. Я использовал Вот этот, но он точно не лучший из имеющихся. Существует так много...




вам не хватает цитаты в конце
'" + dane[10] + "'), но не используйте этот способ. Вместо этого узнайте о Подготовленное заявление, чтобы избежать синтаксических ошибок и SQL-инъекций.