java/abc-drupal-gui/src/cz/frantovo/abcDrupal/Konvertor.java
changeset 5 ed73b8912549
parent 4 5816c7f61a2a
     1.1 --- a/java/abc-drupal-gui/src/cz/frantovo/abcDrupal/Konvertor.java	Fri Jan 01 16:44:46 2010 +0100
     1.2 +++ b/java/abc-drupal-gui/src/cz/frantovo/abcDrupal/Konvertor.java	Fri Jan 01 17:11:36 2010 +0100
     1.3 @@ -2,8 +2,13 @@
     1.4  
     1.5  import java.sql.Connection;
     1.6  import java.sql.DriverManager;
     1.7 +import java.sql.PreparedStatement;
     1.8 +import java.sql.ResultSet;
     1.9  import java.sql.SQLException;
    1.10 +import java.sql.Statement;
    1.11  import java.util.Date;
    1.12 +import java.util.logging.Level;
    1.13 +import java.util.logging.Logger;
    1.14  
    1.15  /**
    1.16   * Řídící třída, stará se o konverzi z databáze Drupalu do databáze ABC.
    1.17 @@ -11,6 +16,7 @@
    1.18   */
    1.19  public class Konvertor {
    1.20  
    1.21 +    private static final Logger log = Logger.getLogger(Konvertor.class.getSimpleName());
    1.22      private PosluchacLogu posluchacLogu;
    1.23      private String jdbcZdroj;
    1.24      private String jdbcCil;
    1.25 @@ -27,19 +33,72 @@
    1.26  	vypis("Začíná migrace");
    1.27  
    1.28  
    1.29 +	try {
    1.30 +	    nastavDBspojeni();
    1.31 +	} catch (SQLException e) {
    1.32 +	    vypis("Chyba při připojování k databázím.");
    1.33 +	    log.log(Level.SEVERE, "Chyba při připojování k databázím.", e);
    1.34 +	    vypis("Končím.");
    1.35 +	    return;
    1.36 +	}
    1.37  
    1.38  
    1.39  	vypis("Migrace dokončena");
    1.40      }
    1.41 -    
    1.42 +
    1.43 +    /**
    1.44 +     * Připojí databáze a zkontroluje SQL dotazem, že jsou v pořádku.
    1.45 +     * @throws SQLException
    1.46 +     */
    1.47      private void nastavDBspojeni() throws SQLException {
    1.48 -	dbZdroj = DriverManager.getConnection("");
    1.49 +	dbZdroj = DriverManager.getConnection(jdbcZdroj);
    1.50 +	dbCil = DriverManager.getConnection(jdbcCil);
    1.51 +
    1.52 +	PreparedStatement sqlZdroj = dbZdroj.prepareStatement("SELECT count(*) FROM node");
    1.53 +	ResultSet rsZdroj = sqlZdroj.executeQuery();
    1.54 +	rsZdroj.next();
    1.55 +	int pocetZdroj = rsZdroj.getInt(1);
    1.56 +	log.log(Level.INFO, "Počet záznamů v tabulce „node“ ve zdrojové DB: " + pocetZdroj);
    1.57 +	zavri(null, sqlZdroj, rsZdroj);
    1.58 +
    1.59 +	PreparedStatement sqlCil = dbCil.prepareStatement("SELECT count(*) FROM polozka");
    1.60 +	ResultSet rsCil = sqlCil.executeQuery();
    1.61 +	rsCil.next();
    1.62 +	int pocetCil = rsCil.getInt(1);
    1.63 +	log.log(Level.INFO, "Počet záznamů v tabulce „polozka“ v cílové DB: " + pocetCil);
    1.64 +	zavri(null, sqlCil, rsCil);
    1.65      }
    1.66  
    1.67 -
    1.68      private void vypis(String zprava) {
    1.69  	if (posluchacLogu != null) {
    1.70  	    posluchacLogu.vypis(new Date() + " " + zprava);
    1.71  	}
    1.72      }
    1.73 +
    1.74 +    /**
    1.75 +     * Zavře všechno
    1.76 +     * @param spojeni DB spojení
    1.77 +     * @param prikaz DB dotaz
    1.78 +     * @param vysledek DB výsledek
    1.79 +     */
    1.80 +    protected static void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) {
    1.81 +        if (vysledek != null) {
    1.82 +            try {
    1.83 +                vysledek.close();
    1.84 +            } catch (Exception e) {
    1.85 +            }
    1.86 +        }
    1.87 +        if (prikaz != null) {
    1.88 +            try {
    1.89 +                prikaz.close();
    1.90 +            } catch (Exception e) {
    1.91 +            }
    1.92 +        }
    1.93 +        if (spojeni != null) {
    1.94 +            try {
    1.95 +                spojeni.close();
    1.96 +            } catch (Exception e) {
    1.97 +            }
    1.98 +        }
    1.99 +    }
   1.100  }