Navázání DB spojení a kontrola databází SQL dotazem.
1 package cz.frantovo.abcDrupal;
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.PreparedStatement;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8 import java.sql.Statement;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
14 * Řídící třída, stará se o konverzi z databáze Drupalu do databáze ABC.
17 public class Konvertor {
19 private static final Logger log = Logger.getLogger(Konvertor.class.getSimpleName());
20 private PosluchacLogu posluchacLogu;
21 private String jdbcZdroj;
22 private String jdbcCil;
23 private Connection dbZdroj;
24 private Connection dbCil;
26 public Konvertor(String jdbcZdroj, String jdbcCil, PosluchacLogu posluchacLogu) {
27 this.jdbcZdroj = jdbcZdroj;
28 this.jdbcCil = jdbcCil;
29 this.posluchacLogu = posluchacLogu;
32 public void konvertuj() {
33 vypis("Začíná migrace");
38 } catch (SQLException e) {
39 vypis("Chyba při připojování k databázím.");
40 log.log(Level.SEVERE, "Chyba při připojování k databázím.", e);
46 vypis("Migrace dokončena");
50 * Připojí databáze a zkontroluje SQL dotazem, že jsou v pořádku.
51 * @throws SQLException
53 private void nastavDBspojeni() throws SQLException {
54 dbZdroj = DriverManager.getConnection(jdbcZdroj);
55 dbCil = DriverManager.getConnection(jdbcCil);
57 PreparedStatement sqlZdroj = dbZdroj.prepareStatement("SELECT count(*) FROM node");
58 ResultSet rsZdroj = sqlZdroj.executeQuery();
60 int pocetZdroj = rsZdroj.getInt(1);
61 log.log(Level.INFO, "Počet záznamů v tabulce „node“ ve zdrojové DB: " + pocetZdroj);
62 zavri(null, sqlZdroj, rsZdroj);
64 PreparedStatement sqlCil = dbCil.prepareStatement("SELECT count(*) FROM polozka");
65 ResultSet rsCil = sqlCil.executeQuery();
67 int pocetCil = rsCil.getInt(1);
68 log.log(Level.INFO, "Počet záznamů v tabulce „polozka“ v cílové DB: " + pocetCil);
69 zavri(null, sqlCil, rsCil);
72 private void vypis(String zprava) {
73 if (posluchacLogu != null) {
74 posluchacLogu.vypis(new Date() + " " + zprava);
80 * @param spojeni DB spojení
81 * @param prikaz DB dotaz
82 * @param vysledek DB výsledek
84 protected static void zavri(Connection spojeni, Statement prikaz, ResultSet vysledek) {
85 if (vysledek != null) {
88 } catch (Exception e) {
94 } catch (Exception e) {
97 if (spojeni != null) {
100 } catch (Exception e) {