Хранить String Array в MySql через Java? - PullRequest
2 голосов
/ 17 сентября 2009

У меня есть строковый массив в Java-программе. Я использую драйвер jdbc для хранения данных в MySql.

Существует ссылочная переменная "pstmt", которая ссылается на подготовленный оператор

Теперь я хочу вызвать следующий метод:

String [] items = {pen, ball, speaker, mic};  
pstmt.setArray(1, ....);

где "items" ссылаются на массив String, но метод setArray () принимает java.sql.Array вместо массива String.

Так как же я могу преобразовать строковый массив "items" в java.sql.Array, чтобы я мог передать аргумент в вызове метода выше?

Ответы [ 3 ]

4 голосов
/ 17 сентября 2009

Как правило, когда вы пытаетесь сохранить массив в RDBM, это указывает на необходимость дальнейшей нормализации вашей модели данных. То есть Вы можете настроить другую таблицу с отношением внешнего ключа к вашей текущей таблице, а затем сохранить каждый элемент массива в новой таблице.

2 голосов
/ 17 сентября 2009

Насколько я знаю, setArray(int i, Array x) и java.sql.Array, которые являются интерфейсом для извлечения и материализации типа данных ARRAY SQL3, не могут использоваться так, как вы хотите.

Кстати, реализация Array является необязательной в соответствии со спецификацией JDBC, и я не думаю, что драйвер MySQL обеспечивает реализацию.

1 голос
/ 17 сентября 2009

Вы делаете это так,

String [] items = {pen, ball, speaker, mic};  
pstmt.setArray(1, pstmt.getConnection().createArrayOf("String", items));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...