我有一个 h2 数据库,我想生成 sql 脚本,然后重命名这个数据库。
我做这样的事情
Script.execute("jdbc:h2:" + directory + File.separatorChar + dbName, user, password, file);
Date d = new Date();
Timestamp t = new Timestamp(d.getTime());
File oldfile = new File(directory + File.separatorChar + dbName + ".h2.db");
File newfile = new File(directory + File.separatorChar + t.getTime() + "backup.h2.db");
oldfile.renameTo(newfile)
但重命名失败!我认为这是脚本打开我的数据库的原因,但是我如何关闭它并在之后重命名我的文件?谢谢
解决方案:我只是在Script
命令后添加,感谢您的帮助
Connection conn = DriverManager.getConnection("jdbc:h2:" + directory + File.separatorChar + dbName, user, password);
conn.prepareStatement("SHUTDOWN DEFRAG;").execute();
conn.close();