JDBC Sqlite - Insert Query не работает, когда я запускаю свой проект через Jenkins

Дженкинс не позволяет мне вставлять данные в случае, если моя сборка не удалась или прошла успешно. Я использую SQLite, Java, JDBC. Та же самая сборка работает нормально на моем локальном компьютере, данные успешно вставлены.

Вот код, который включает мое соединение, вставку запроса и файл зависимостей.

Файл зависимостей -

        sqlite-jdbc--    3.7.2

Код, который включает соединение и запрос на вставку,

public static void finalinsert() throws SQLException {
     DriverManager.registerDriver(new org.sqlite.JDBC());
     Connection c = DriverManager.getConnection("jdbc:sqlite:src/test/resources/DataBase/DailyStatus.sqlite");

 c.setAutoCommit(false);
 try {
    // PreparedStatement p = c.prepareStatement("");

     File file = new File("src/test/resources/DataBase/DailyStatus.sqlite");

     if (file.exists()){
         System.out.println("Is Execute allow : " + file.canExecute());
         System.out.println("Is Write allow : " + file.canWrite());
         System.out.println("Is Read allow : " + file.canRead());
     }
     else
     {
         System.out.println("NOT found");
     }

     file.setExecutable(true);
     file.setReadable(true);
     file.setWritable(true);

         System.out.println("Is Execute allow : " + file.canExecute());
         System.out.println("Is Write allow : " + file.canWrite());
         System.out.println("Is Read allow : " + file.canRead());

         PreparedStatement p = c.prepareStatement("insert into Report(Status,Date) values('Fail','" + java.time.LocalDateTime.now() + "')");
         try {

             p.executeUpdate();
             System.out.println("out");
             c.commit();
             p.close();

         } finally {
             p.close();
         }

     } finally {
         c.close();
     }
     return;
 }

Я также пробовал с файлом .db, но не работал. также пробовал с Recordset.

Я использую git для запуска кода от Jenkins.

Пожалуйста, дайте мне знать, что я пропустил или что можно улучшить, чтобы запрос на вставку начал работать в Jenkins.

Если на прошлой неделе возникла такая же проблема, я обнаружил, что каталог, содержащий файл db, также должен быть доступен для записи в ubuntu 18.04.

StephaneM 11.06.2018 14:10

Проблема в пути, при запуске он, вероятно, не может найти src/test/resources/DataBase/DailyStatus.sqlite. Ваши исходные пути обычно не являются путями во время выполнения.

Mark Rotteveel 11.06.2018 15:39

Привет, Эби, Спасибо за быстрый ответ ... в соответствии с вашим предложением я обновил путь "scr / DailyStatus.sqlite", но он все еще не работает. Также дал разрешение на папку и файл базы данных, но он остается прежним. Я также использую запрос выбора, который работает нормально. Я не знаю, в чем проблема с запросом на вставку, даже если я пишу весь код при обработке исключений, по-прежнему нет ошибок.

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

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