From 9221b03120b2e104fd2807b79c012e47a33588c1 Mon Sep 17 00:00:00 2001 From: MrBesen Date: Mon, 16 Jul 2018 12:43:56 +0200 Subject: [PATCH] auto-reconnect --- src/de/mrbesen/youtubecrawler/DB.java | 29 +++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/de/mrbesen/youtubecrawler/DB.java b/src/de/mrbesen/youtubecrawler/DB.java index 39b8918..facad79 100644 --- a/src/de/mrbesen/youtubecrawler/DB.java +++ b/src/de/mrbesen/youtubecrawler/DB.java @@ -19,13 +19,10 @@ public class DB { private Logger log = Logger.getLogger(DB.class.getName()); - public DB() { + public DB() { try { - Class.forName("com.mysql.jdbc.Driver");//Treiber laden - - //verbinden - con = DriverManager.getConnection("jdbc:mysql://" + server + ":" + port + "/?serverTimezone=UTC" ,user,pw); - + connect(false); + //set the database up! boolean found = false; ResultSet set = con.getMetaData().getCatalogs();//does the db exists? @@ -46,12 +43,22 @@ public class DB { log.info("Database is set up! -> \n\nFirst Entry in uploaded needed!!!!!!\nPlease insert MANUALY!\n "); } - } catch (ClassNotFoundException | SQLException e) { + } catch (SQLException e) { log.error("Error while connecting to the database! ", e); } - } + private void connect(boolean selectdb) { + try { + Class.forName("com.mysql.jdbc.Driver");//Treiber laden try this driver: com.mysql.cj.jdbc.Driver + //verbinden + con = DriverManager.getConnection("jdbc:mysql://" + server + ":" + port + "/" + (selectdb ? db : "") + "?serverTimezone=UTC" ,user,pw); + }catch (ClassNotFoundException | SQLException e) { + log.error("Error while connecting to the database! ", e); + } + } + + /** * removes all videos, that are known from the db * @param input @@ -100,6 +107,9 @@ public class DB { */ public ResultSet query(String q) { try { + if(con.isClosed()) { + connect(true); + } return con.prepareStatement(q).executeQuery(); } catch (SQLException e) { log.error("Fehler bim ausführen der Query: " + q, e); @@ -113,6 +123,9 @@ public class DB { */ public void update(String q) { try { + if(con.isClosed()) { + connect(true); + } con.prepareStatement(q).executeUpdate(); } catch (SQLException e) { log.error("Fehler bim ausführen der Update-Query: " + q, e);