Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.68 KB | None | 0 0
  1. package adreli.app.server;
  2.  
  3. import adreli.app.base.BaseDataManager;
  4. import adreli.app.base.Logger;
  5. import adreli.app.base.Utils;
  6.  
  7. import java.sql.*;
  8.  
  9. public class DatabaseDataManager extends BaseDataManager {
  10.  
  11.     private Connection connection = null;
  12.  
  13.     /**
  14.      * @param logger
  15.      * @param clientIp
  16.      */
  17.     public DatabaseDataManager(Logger logger, String clientIp) {
  18.         this.logger = logger;
  19.         this.clientIp = clientIp;
  20.  
  21.         try {
  22.             Class.forName("com.mysql.cj.jdbc.Driver");
  23.             connection = DriverManager
  24.                     .getConnection("jdbc:mysql://localhost/adreli?" +
  25.                             "user=root" +
  26.                             "&useUnicode=true" +
  27.                             "&useJDBCCompliantTimezoneShift=true" +
  28.                             "&useLegacyDatetimeCode=false" +
  29.                             "&serverTimezone=UTC");
  30.  
  31.         } catch (SQLException e) {
  32.             logger.writeLog("Bei der Verbindung zur Datenbank ist ein" +
  33.                     "Fehler aufgetreten.", clientIp);
  34.  
  35.         } catch (ClassNotFoundException e) {
  36.             logger.writeLog("Der Datenbanktreiber konnte nicht gefunden " +
  37.                             "werden.",
  38.                     clientIp);
  39.         }
  40.     }
  41.  
  42.     /**
  43.      * Methode um die Daten zu speichern.
  44.      *
  45.      * @param buffer Aktuell im Programm gehaltene Daten
  46.      */
  47.     @Override
  48.     public void saveData(String[][] buffer) {
  49.  
  50.         if (connection != null) {
  51.  
  52.             try {
  53.                 PreparedStatement preparedStatement = connection
  54.                         .prepareStatement("insert into  adreli values " +
  55.                                 "( ?, ?, ?, ?, ?, ?, ?, ?, ?)");
  56.  
  57.                 for (String[] entry : buffer) {
  58.                     // preparedStatement.setString(0, entry[Utils.NUMBER]);
  59.                     preparedStatement.setString(1, entry[Utils.NAME]);
  60.                     preparedStatement.setString(2, entry[Utils.VORNAME]);
  61.                     preparedStatement.setString(3, entry[Utils.ANREDE]);
  62.                     preparedStatement.setString(4, entry[Utils.STRASSE]);
  63.                     preparedStatement.setString(5, entry[Utils.PLZ]);
  64.                     preparedStatement.setString(6, entry[Utils.ORT]);
  65.                     preparedStatement.setString(7, entry[Utils.TELEFON]);
  66.                     preparedStatement.setString(8, entry[Utils.FAX]);
  67.                     preparedStatement.setString(9, entry[Utils.BEMERKUNG]);
  68.                     preparedStatement.executeUpdate();
  69.                 }
  70.             } catch (SQLException e) {
  71.                 logger.writeLog("Beim Speichern der Datensätze ist ein Fehler " +
  72.                                 "aufgetreten.",
  73.                         clientIp);
  74.             }
  75.         } else {
  76.             logger.writeLog("Datenbankverbindung nicht aufgebaut. Es ist " +
  77.                     "nicht möglich Daten zu schreiben.", clientIp);
  78.         }
  79.  
  80.     }
  81.  
  82.     /**
  83.      * Methode um die Daten zu lesen.
  84.      *
  85.      * @return Ausgelesene Daten
  86.      */
  87.     @Override
  88.     public String[][] readData() {
  89.  
  90.         String[][] buffer = new String[0][10];
  91.  
  92.         if (connection != null) {
  93.             try {
  94.                 Statement s = connection.createStatement();
  95.                 s.executeQuery("SELECT * FROM adreli;");
  96.                 ResultSet rs = s.getResultSet();
  97.                 int count = 0;
  98.                 while (rs.next()) {
  99.                     String[] entry = new String[10];
  100.                     entry[Utils.NAME] = rs.getString(Utils.NAME);
  101.                     entry[Utils.VORNAME] = rs.getString(Utils.VORNAME);
  102.                     entry[Utils.ANREDE] = rs.getString(Utils.ANREDE);
  103.                     entry[Utils.STRASSE] = rs.getString(Utils.STRASSE);
  104.                     entry[Utils.PLZ] = rs.getString(Utils.PLZ);
  105.                     entry[Utils.ORT] = rs.getString(Utils.ORT);
  106.                     entry[Utils.TELEFON] = rs.getString(Utils.TELEFON);
  107.                     entry[Utils.FAX] = rs.getString(Utils.FAX);
  108.                     entry[Utils.BEMERKUNG] = rs.getString(Utils.BEMERKUNG);
  109.  
  110.                     int index = Utils.getSmallestEmptyArrayIndex(buffer);
  111.                     if (index == -1) {
  112.                         buffer = Utils.expandArray(buffer);
  113.                     }
  114.                     buffer[buffer.length - 1] = entry;
  115.                     ++count;
  116.                 }
  117.                 rs.close();
  118.                 s.close();
  119.  
  120.             } catch (SQLException e) {
  121.                 logger.writeLog("Fehler beim Lesen der Daten aus der Datenbank",
  122.                         clientIp);
  123.             }
  124.         }
  125.         return buffer;
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement