完成一些集成测试后,我发现预期的H2数据库文件不存在。
使用“ jdbc:h2:/ tmp / casper”的URL,我希望有一个/tmp/casper.mv.db文件,但是没有。
原因是在初始化数据库时,我使用了“删除所有对象删除文件”的功能。在我完成所有工作之后,测试关闭数据源后,它消失了。
我对这个问题的回答。
答案 0 :(得分:0)
包org.javautil.h2;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.sql.Connection;
import java.sql.Statement;
import org.junit.Test;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class H2DropAllObjectsTest {
@Test
public void casper() throws Exception {
final HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:h2:/tmp/casper");
config.setUsername("sr");
config.setPassword("tutorial");
config.setAutoCommit(true);
HikariDataSource dataSource = new HikariDataSource(config);
Connection connection = dataSource.getConnection();
File f = new File("/tmp/casper.mv.db");
assertTrue (f.exists());
Statement s = connection.createStatement();
s.execute("drop all objects delete files");
assertTrue (f.exists());
s.execute("create table a (b number(9))");
/* do a lot of work */
connection.commit();
s.close();
connection.close();
assertTrue (f.exists());
dataSource.close();
assertFalse (f.exists());
}
}
答案 1 :(得分:0)
只需处理您的数据库,因为update
不用create/drop
dataSource:
dbCreate: update