Вставить список <string> в базу данных с помощью Java

Я хочу вставить список строк в базу данных, поэтому обычно мы будем хранить строку непосредственно в базе данных, используя подготовленный оператор или пакетный оператор. Теперь я хочу вставить список строк в базу данных, поэтому я использовал подготовленный оператор.

    List<String> Account_Number = Files.lines(Paths.get("D:\\PDFTOEXCEL\\Extractionfrompdf.txt"))

    .filter(s -> s.contains(arra.get(7)))
    .map(s -> s.split(":")[1].trim())
    .collect(Collectors.toList());
        System.out.println(Account_Number);

     try {
            Connection conn = PDFTOEXCEL.getConnection();
            PreparedStatement stmt = conn.prepareStatement("insert into client_info values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
    stmt.setString(1, Account_Number);
int k = stmt.executeUpdate();

У меня есть около 31 столбца в моей базе данных. Просто для демонстрации я разместил только один в этом коде. Все находятся в списке только строки.

Предполагая, что список представляет значения этих 31 столбцов, что мешает вам зациклиться на нем и вызвать stmt.setString(index, value)? Кроме того, вы должны работать над своим именованием, например. Accout_Number будет указывать одно значение, а не список (или, точнее, в мире Java это будет больше похоже на смесь имени класса, потому что оно начинается с буквы в верхнем регистре, и константы из-за подчеркивания).

Thomas 18.02.2019 16:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
489
1

Ответы 1

Вы пытались установить параметры один за другим? Что-то вроде этого:

        int size = Account_Number.size();
        for (int i = 1; i <= size; i++) {
            stmt.setString(i, Account_Number.get(i-1));
        }

Таким образом, каждый знак вопроса в операторе SQL представляет собой параметр, в вашем случае это 30 параметров/столбцов. И stmt.setString(i, Account_Number.get(i-1)); установит значение для параметра/столбца с индексом Y. Итак, здесь я предполагаю, что Account_Number.size() действительно соответствует количеству столбцов в вашей таблице.

David Marques 18.02.2019 17:00

k вы можете показать, как поместить это утверждение в мою программу, но я все еще не понимаю, что вы на самом деле говорите, если вы не возражаете

Deo 18.02.2019 17:21

Account_Number - это мой один из столбцов в моей таблице базы данных. Я создал таблицу в Client_info, это имя моей таблицы.

Deo 18.02.2019 17:23

Можете ли вы опубликовать определение таблицы client_info? то есть имя и индекс всех столбцов. Итак, если Account_Number — это первый столбец в вашей таблице, вам нужно установить stmt.setString(1, Account_Number.get(1));, а затем для остальных 30 столбцов stmt.setString(COLUMN_INDEX, "Column Value"); Имейте в виду, что Account_Number — это список строк, возможно, список номеров счетов.

David Marques 18.02.2019 17:38

Я получаю сообщение об ошибке, в то время как (query_set.next()) { row_counter = row_counter + 1; Account_Number = query_set.getString("Account_Number"); ошибка: несовместимые типы: строка не может быть преобразована в список <String> /* данные в карту */

Deo 19.02.2019 02:26

Другие вопросы по теме