#java #database #h2 #creation
#java #База данных #h2 #создание
Вопрос:
прочитав документацию по H2, я написал это простое приложение для создания базы данных H2 в локальном каталоге:
public static void main(String[] args) throws SQLException {
String path = "C:/Temp/H2/";
File fpath = new File(path);
fpath.mkdirs();
FileUtils.recursiveDelete(fpath);
String dbName = "tata";
String connection = "jdbc:h2:file:" path dbName;
Server server = Server.createTcpServer(connection);
server.start();
server.stop();
}
Эта программа работает нормально, но когда я проверяю целевой каталог, базы данных там нет… (я использую версию 1.3.161)
Комментарии:
1. Вы должны использовать
Server.createTcpServer()
2. @Thomas но разве это не то, что я сделал?
3. @JVestry нет, вы используете
Server.createTcpServer(connection)
неServer.createTcpServer()
Ответ №1:
Вам действительно нужно получить доступ к базе данных, файлы создаются лениво:
server.start();
DriverManager.getConnection(connection);
server.stop();
Добавленная строка в середине создает tata.h2.db
файл там, где ожидалось (протестировано с 1.3.155).
Комментарии:
1. Да, и на самом деле серверу не нужно знать о базе данных, это означает использование
Server.createTcpServer()
;2. @Thomas Извините, это неоднозначно, что вы подразумеваете под «серверу не нужно знать о базе данных»? Документацию трудно интерпретировать. Он не предоставляет достаточно информации для правильной интерпретации.
3. @JVestry Я постараюсь улучшить документацию.