Дженкинс не позволяет мне вставлять данные в случае, если моя сборка не удалась или прошла успешно. Я использую 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.
Проблема в пути, при запуске он, вероятно, не может найти src/test/resources/DataBase/DailyStatus.sqlite. Ваши исходные пути обычно не являются путями во время выполнения.
Привет, Эби, Спасибо за быстрый ответ ... в соответствии с вашим предложением я обновил путь "scr / DailyStatus.sqlite", но он все еще не работает. Также дал разрешение на папку и файл базы данных, но он остается прежним. Я также использую запрос выбора, который работает нормально. Я не знаю, в чем проблема с запросом на вставку, даже если я пишу весь код при обработке исключений, по-прежнему нет ошибок.




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