Advertisement
wagnersousa

Untitled

Feb 3rd, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. package intregation.base.dbunit;
  2.  
  3. import static org.dbunit.operation.DatabaseOperation.CLEAN_INSERT;
  4. import static org.dbunit.operation.DatabaseOperation.DELETE;
  5. import static org.dbunit.operation.DatabaseOperation.DELETE_ALL;
  6. import static org.dbunit.operation.DatabaseOperation.INSERT;
  7. import static org.dbunit.operation.DatabaseOperation.REFRESH;
  8. import static org.dbunit.operation.DatabaseOperation.UPDATE;
  9.  
  10. import java.io.FileInputStream;
  11. import java.io.FileNotFoundException;
  12. import java.io.FileOutputStream;
  13. import java.io.IOException;
  14. import java.sql.Connection;
  15. import java.sql.SQLException;
  16.  
  17. import javax.sql.DataSource;
  18.  
  19. import org.dbunit.DatabaseUnitException;
  20. import org.dbunit.database.DatabaseConnection;
  21. import org.dbunit.database.IDatabaseConnection;
  22. import org.dbunit.dataset.DataSetException;
  23. import org.dbunit.dataset.IDataSet;
  24. import org.dbunit.dataset.xml.FlatXmlDataSet;
  25. import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
  26. import org.dbunit.operation.DatabaseOperation;
  27. import org.springframework.stereotype.Component;
  28.  
  29. @Component("dbUnitManager")
  30. public class DbUnitManagerImpl implements DbUnitManager {
  31.  
  32. public static final String XML_COM_DADOS_BASICOS = "";
  33. DataSource dataSource;
  34.  
  35. public DbUnitManagerImpl(DataSource dataSource) {
  36. this.dataSource = dataSource;
  37. }
  38.  
  39. protected Connection getConnection() {
  40. Connection conn;
  41. try {
  42. conn = dataSource.getConnection();
  43. } catch (Exception e) {
  44. e.printStackTrace();
  45. throw new RuntimeException("Erro ao tentar obter uma conexão com o banco: "+ e.getMessage());
  46. }
  47. return conn;
  48. }
  49.  
  50. /**
  51. * Executa operações do DBUnit no dataset <code>dbUnitXmlPath</code>.
  52. */
  53. protected void execute(DatabaseOperation operation, String dbUnitXmlPath) {
  54. try {
  55. IDatabaseConnection dbconn = this.getDbUnitConnection();
  56. operation.execute(dbconn, this.getDataSetFrom(dbUnitXmlPath));
  57. dbconn.close();
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. throw new RuntimeException(e);
  61. }
  62. }
  63.  
  64. public void refresh(String dbUnitXmlPath) {
  65. execute(REFRESH, dbUnitXmlPath);
  66. }
  67.  
  68. public void cleanAndInsert(String dbUnitXmlPath) {
  69. execute(CLEAN_INSERT, dbUnitXmlPath);
  70. }
  71.  
  72. public void insert(String dbUnitXmlPath) {
  73. execute(INSERT, dbUnitXmlPath);
  74. }
  75.  
  76. public void update(String dbUnitXmlPath) {
  77. execute(UPDATE, dbUnitXmlPath);
  78. }
  79.  
  80. public void delete(String dbUnitXmlPath) {
  81. execute(DELETE, dbUnitXmlPath);
  82. }
  83.  
  84. public void deleteAll(String dbUnitXmlPath) {
  85. execute(DELETE_ALL, dbUnitXmlPath);
  86. }
  87.  
  88. public void clear() {
  89. execute(CLEAN_INSERT, XML_COM_DADOS_BASICOS);
  90. }
  91.  
  92. private IDataSet getDataSetFrom(String dbUnitXmlPath) throws IOException,
  93. DataSetException, FileNotFoundException {
  94. return new FlatXmlDataSetBuilder().build(new FileInputStream(dbUnitXmlPath));
  95. }
  96.  
  97. /**
  98. * Instancia, configura e retorna um <code>IDatabaseConnection</code> a
  99. * partir de uma conexão Jdbc.
  100. */
  101. protected IDatabaseConnection getDbUnitConnection()
  102. throws DatabaseUnitException, SQLException {
  103. IDatabaseConnection dbconn = new DatabaseConnection(this.getConnection());
  104. return dbconn;
  105. }
  106.  
  107. public void dump(String dbUnitXmlPath) {
  108. try {
  109. IDatabaseConnection dbconn = getDbUnitConnection();
  110. IDataSet iDataSet = dbconn.createDataSet();
  111. // se for necessário ordenar devido as constraints - demora pacas
  112. // iDataSet = new FilteredDataSet(new DatabaseSequenceFilter(dbconn), iDataSet);
  113. FlatXmlDataSet.write(iDataSet, new FileOutputStream(dbUnitXmlPath));
  114. } catch (Exception e) {
  115. e.printStackTrace();
  116. throw new RuntimeException(e);
  117. }
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement