2017-02-03 7 views
0

Что я хочу вставить эти значения в одном поле базы данных MySQL:Как вставить массив значений в базе данных Mysql с помощью Java

String[] content = {"a1", "a2", "a3", "a4"}; 
aArray 
...?//how can i write the code here..help me 


String query = "insert into CHAR_ARRAY_TABLE(id, cont) values(?,?)"; 

preparedStatement = connection.prepareStatement(query); 

preparedStatement.setInt(1, row_id_name); 
preparedStatement.setArray(2, aArray); 
int count = preparedStatement.executeUpdate(); 
System.out.println(count + " inserted"); 
+0

Вы хотите вставить значение элемента Array в виде одиночной строки в столбце 'con'? – VPK

ответ

0

Ваша таблица должна выглядеть следующим образом:

CREATE TABLE CHAR_ARRAY_TABLE (int id, cont varchar ARRAY[4]); 

INSERT INTO CHAR_ARRAY_TABLE (id, cont) 
    VALUES (1, ARRAY['aa','bb','cc','dd']); 

Так в Java вы должны сделать это, как это, чтобы установить значения для подготовленного состояния продукта по значению, чтобы получить некоторые тиги:

preparedStatement.setInt(1, row_id_name); 
preparedStatement.setString(2, "a1"); 
preparedStatement.setString(3, "a2"); 
preparedStatement.setString(4, "a3"); 
preparedStatement.setString(5, "a4"); 

Таким образом, чтобы получить это, вы можете использовать цикл как это:

String[] content = {"a1", "a2", "a3", "a4"}; 

String query = "INSERT INTO CHAR_ARRAY_TABLE (id, cont) VALUES (?, ARRAY[?, ?, ?, ?])"; 

preparedStatement = connection.prepareStatement(query); 

preparedStatement.setInt(1, row_id_name); 

for (int i = 0; i < content.length; i++) { 
    preparedStatement.setString(i+2, content[i]); 
} 

int count = preparedStatement.executeUpdate(); 

Надеется, что это может помочь вам.