Невозможно обновить таблицу - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть ArrayList, который содержит массив объектов 0,1,2.Я использую расширенный цикл для печати значений из него.он работает нормально и в том же цикле, когда я пытаюсь вставить все значения в таблицу MySQL, не в состоянии выполнить подготовленный оператор и выдает исключение nullpointer

Я попытался напечатать сообщение после каждой строки, и он выдает исключение nullpointerно я могу печатать все даты внутри одного цикла без запросов.В моей таблице MySQL у меня есть столбец даты date_details

Я создал столбец даты и пытаюсь загрузить файл после преобразования каждого значения из объекта в String с помощью obj.toString ();тогда тоже такая же проблема

    class InsertData
    {
        static void updateTable(ArrayList<Object[]> li)
        {
            PreparedStatement ps = null;
            ResultSet rs = null;
            Connection con = null;
            int count=0;
            try{
                con = DBConnector.getConnection();
                for (Object[] data : li) 
                {
                    System.out.println(data[1]+" "+data[2]+" "+data[0]);
                    //i am able to print all the values in data[0] without queries in normal loop
    String query = "insert into user_data(date_details)values(?)";
                    ps = con.prepareStatement(query);
                    System.out.println("set dt "+data[0]);
                    ps.setString(1, data[0].toString());
                    System.out.println("set dt "+data[0]);//Stopped executing from this line
                    ps.execute();
                }
            }
        }

data[o] holds below date values

    06/01/2013 04:03.36 AM
    06/01/2013 07:06.42 AM
    06/01/2013 12:02.42 AM

1 Ответ

0 голосов
/ 10 февраля 2019

Ваше значение во вставке является первым параметром, поэтому вы должны использовать 1, а не 3

String query =  "insert into user_data(date_details) values(?)";
                ps = con.prepareStatement(query);
                ps.setString(1, data[0].toString());
                ps.execute();

, предполагая, что ваш столбец date_details совместим со строковым значением, которое вы передаете, как в параметре

если вы используете столбец даты, попробуйте использовать

java.sql.Date d = java.sql.Date.valueOf(data[0].toString());
String query =  "insert into user_data(date_details) values(?)";
                ps = con.prepareStatement(query);
                ps.setDate(1, d);
                ps.execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...