У меня есть веб-приложение java, которое будет читать, записывать и удалять информацию из пользовательской базы данных SQLite. Я использую JDBCtemplate для установки соединения, запроса к БД и обновления информации.
Я наблюдал одно поведение во время моих тестов:
Каждый раз, когда пользователи загружали новый файл базы данных SQLite (это будет имеет то же имя, находится в том же каталоге, что и старый файл БД), если они не перезагружают / перезапускают tomcat, jdbcquery сообщит, что исключение БД было повреждено.
Для меня это выглядело так, как будто JDBCtemplate как-то кешируется соединение и пытается возобновить соединение со старым БД?
Если это так, знаете ли вы в любом случае обновить sh соединение без перезагрузки приложения?
final SingleConnectionDataSource dataSource = new singleConnectionDataSource();
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
throw new applicationException(MessageTemplateNames.GENERAL_UNKNOWN_ERROR, e);
}
createDirectoryForDbIfNotExists();
dataSource.setUrl(String.format("%s%s", JDBC.PREFIX, getDbFileLocation()));
dataSource.setAutoCommit(true);