View Javadoc

1   package db;
2   
3   import java.sql.Connection;
4   import java.sql.DriverManager;
5   import java.sql.SQLException;
6   
7   import org.dbunit.DatabaseUnitException;
8   import org.dbunit.database.DatabaseConnection;
9   import org.dbunit.database.IDatabaseConnection;
10  import org.dbunit.dataset.DefaultDataSet;
11  import org.dbunit.operation.DatabaseOperation;
12  
13  import fit.Fixture;
14  
15  public class DatabaseContext extends Fixture {
16  
17  	private IDatabaseConnection databaseConnection;
18  
19  	private static DefaultDataSet dataSet;
20  	
21      public DatabaseContext()
22      {
23          dataSet = new DefaultDataSet();
24      }
25      
26  	public static DefaultDataSet getDataSet() {
27  		return dataSet;
28  	}
29  
30  	private static String driverName;
31  	
32  	private static String url;
33  	
34  	private static String user;
35  	
36  	private static String password;
37  	
38  	public void driverName(String name)
39  	{
40  		this.driverName = name;
41  	}
42  	
43  	public void url(String url)
44  	{
45  		this.url = url;
46  	}
47  	
48  	public void user(String user)
49  	{
50  		this.user = user;
51  	}
52  	
53  	public void password(String password)
54  	{
55  		this.password = password;
56  	}
57  	
58  	public static Connection getConnection() throws ClassNotFoundException, SQLException
59  	{
60  		Class.forName(driverName);
61  		Connection conn = DriverManager.getConnection(url, user, password);
62  		return conn;
63  	}
64  	
65  	public static DatabaseConnection createDatabaseConnection() throws ClassNotFoundException, SQLException
66  	{
67  		return new DatabaseConnection(getConnection());
68  	}
69  	
70  	protected void connect() throws ClassNotFoundException, SQLException
71  	{
72  		databaseConnection = createDatabaseConnection();
73  	}
74  	
75  	public void truncate() throws Exception {
76  		connect();
77  		DatabaseOperation.TRUNCATE_TABLE.execute(databaseConnection, dataSet);
78  		disconnect();
79  	}
80  	
81  	protected void disconnect() throws SQLException
82  	{
83  		databaseConnection.close();
84  	}
85  	
86  	
87  	public void insert() throws DatabaseUnitException, SQLException
88  	{
89  		DatabaseOperation.INSERT.execute(databaseConnection, dataSet);
90  	}
91  	
92  	public void cleanInsert() throws DatabaseUnitException, SQLException, ClassNotFoundException
93  	{
94  		connect();
95  		DatabaseOperation.CLEAN_INSERT.execute(databaseConnection, dataSet);
96  		disconnect();
97  	}
98  	
99  	public void resetDataSet()
100 	{
101 		dataSet = new DefaultDataSet();
102 	}
103 	
104 }