SQLite + Виртуальная файловая система?
Я использую SQLite
база данных, и я хочу открыть .db
файл изнутри Jimfs
виртуальная файловая система. Используя следующий код, я могу импортировать файл в виртуальную файловую систему:
String databaseFilePath = "...";
Configuration configuration = Configuration.unix();
FileSystem fileSystem = Jimfs.newFileSystem(configuration);
Path targetDirectory = fileSystem.getPath("/");
Files.copy(Paths.get(databaseFilePath), targetDirectory);
Далее, когда я пытаюсь открыть файл базы данных, у меня возникают проблемы:
Connection connection = DriverManager.getConnection("jdbc:sqlite:" + databaseFileName);
Я не могу использовать String
s, поскольку на виртуальный файл можно ссылаться только с помощью Path
объект. Как открыть соединение с базой данных, используя Path
s?
1 ответ
Решение
SQLite работает с "настоящими" файлами.
Чтобы иметь возможность хранить данные в другом месте, вы должны реализовать собственную VFS SQLite. (Это поддерживается не каждым драйвером JDBC.)