1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
public abstract class BatchTest {
private Connection connection = null;
public BatchTest(String configFile, String dataFile){
try{
loadData(configFile, dataFile);
}catch (Exception e) {
e.printStackTrace();
}
}
private void loadData(String configFile, String dataFile)throws Exception {
File aPropertyFile = new File(configFile);
FileInputStream anFileInputStream = new FileInputStream(aPropertyFile);
PropertyResourceBundle aResource = new PropertyResourceBundle(anFileInputStream);
String nomDriver = aResource.getString("driverName");
String url = aResource.getString("url");
String login = aResource.getString("login");
String password = aResource.getString("password");
RandomAccessFile myAcces = null;
File myFile = new File(dataFile);
String aLine = null;
PreparedStatement aStatement = null;
try{
Class.forName(nomDriver);
}catch(ClassNotFoundException cnfe){
System.out.println("La classe "+nomDriver+" n'a pas été trouvée");
cnfe.printStackTrace();
}
try{
connection = DriverManager.getConnection(url,login,password);
connection.setAutoCommit(false);
myAcces = new RandomAccessFile(myFile,"r");
aLine = myAcces.readLine();
//chargement des données de test
while(aLine != null && !aLine.equals("")){
aStatement = connection.prepareStatement(aLine);
aStatement.executeUpdate();
aStatement.close();
aLine = myAcces.readLine();
}
connection.commit();
}
catch(SQLException sqle){
connection.rollback();
System.out.println("Exception SQL : ");
while (sqle != null) {
String message = sqle.getMessage();
String sqlState = sqle.getSQLState();
int errorCode = sqle.getErrorCode();
System.out.println("Message = "+message);
System.out.println("SQLState = "+sqlState);
System.out.println("ErrorCode = "+errorCode);
sqle.printStackTrace();
sqle = sqle.getNextException();
}
}
catch(FileNotFoundException fe) {
connection.rollback();
System.out.println("Fichier" + myFile.toString() + " non trouvé");
}
finally{
myAcces.close();
}
}
@AfterClass
private void clean() throws Exception {
try {
if(!connection.isClosed()) {
cleanData(connection);
}
}catch(SQLException sqle){
connection.rollback();
System.out.println("Exception SQL : ");
while (sqle != null) {
String message = sqle.getMessage();
String sqlState = sqle.getSQLState();
int errorCode = sqle.getErrorCode();
System.out.println("Message = "+message);
System.out.println("SQLState = "+sqlState);
System.out.println("ErrorCode = "+errorCode);
sqle.printStackTrace();
sqle = sqle.getNextException();
}
}
finally{
if(!connection.isClosed()){
try{
connection.commit();
connection.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
protected abstract void cleanData(Connection connection) throws SQLException; |
Partager