1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit;
23
24 import org.dbunit.operation.DatabaseOperation;
25
26 import java.io.File;
27 import java.nio.file.Paths;
28 import java.io.FilenameFilter;
29 import java.sql.Connection;
30 import java.sql.DriverManager;
31 import java.sql.SQLException;
32
33
34
35
36
37
38 public class H2Environment extends DatabaseEnvironment
39 {
40 public static final String USERNAME_DEFAULT = "sa";
41 public static final String PASSWORD_DEFAULT = "";
42
43 public H2Environment(DatabaseProfile profile) throws Exception
44 {
45 super(profile);
46 }
47
48 public static Connection createJdbcConnection(String databaseName)
49 throws Exception
50 {
51 return createJdbcConnection(databaseName, USERNAME_DEFAULT,
52 PASSWORD_DEFAULT);
53 }
54
55 public static Connection createJdbcConnection(String databaseName,
56 String username, String password) throws Exception
57 {
58 Class.forName("org.h2.Driver");
59 return DriverManager.getConnection("jdbc:h2:mem:" + databaseName,
60 username, password);
61 }
62
63 @Override
64 public void closeConnection() throws Exception
65 {
66 DatabaseOperation.DELETE_ALL.execute(getConnection(), getInitDataSet());
67 }
68
69 public static void shutdown(Connection connection) throws SQLException
70 {
71 DdlExecutor.executeSql(connection, "SHUTDOWN IMMEDIATELY");
72 }
73
74 public static void deleteFiles(final String filename)
75 {
76 deleteFiles(Paths.get(".").toFile(), filename);
77 }
78
79 public static void deleteFiles(File directory, final String filename)
80 {
81 File[] files = directory.listFiles(new FilenameFilter()
82 {
83 public boolean accept(File dir, String name)
84 {
85 if (name.indexOf(filename) != -1)
86 {
87 return true;
88 }
89 return false;
90 }
91 });
92
93 for (int i = 0; i < files.length; i++)
94 {
95 File file = files[i];
96 file.delete();
97 }
98
99 }
100 }