Browse Source

Added dedicated ConnectionParams and params export from file

toomanysugar 4 years ago
parent
commit
fd7204c895

BIN
out/production/JavaFxApplication/com/moviesdb/Controller.class


+ 85 - 0
src/com/moviesdb/ConnectionParams.java

@@ -0,0 +1,85 @@
+package com.moviesdb;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import java.io.*;
+import java.util.Objects;
+import java.util.Properties;
+
+
+public class ConnectionParams {
+    private String host;
+    private String user;
+    private String password;
+    private boolean initilizeErr;
+    private List<String> initilizeErrCause;
+
+    public ConnectionParams(String host, String user, String password){
+        try {
+            this.host = Objects.requireNonNull(host);
+            this.user = Objects.requireNonNull(user);
+            this.password = Objects.requireNonNull(password);
+            initilizeErr = false;
+        } catch (NullPointerException ex){
+            ex.printStackTrace();
+            initilizeErr = true;
+            initilizeErrCause = new ArrayList<String>();
+            if (Objects.isNull(host)) initilizeErrCause.add("host");
+            if (Objects.isNull(user)) initilizeErrCause.add("user");
+            if (Objects.isNull(password)) initilizeErrCause.add("password");
+        }
+    }
+
+    public ConnectionParams(String filePath){
+        try {
+            FileInputStream fis;
+            Properties property = new Properties();
+
+            fis = new FileInputStream(filePath);
+            property.load(fis);
+
+            initilizeErrCause = new ArrayList<String>();
+            if (Objects.isNull(property.getProperty("CONFIG_DEFAULT_HOST"))) initilizeErrCause.add("host");
+            if (Objects.isNull(property.getProperty("CONFIG_DEFAULT_USER"))) initilizeErrCause.add("user");
+            if (Objects.isNull(property.getProperty("CONFIG_DEFAULT_PASS"))) initilizeErrCause.add("password");
+
+            initilizeErr = !initilizeErrCause.isEmpty();
+
+            if (!initilizeErr) {
+                this.host = property.getProperty("CONFIG_DEFAULT_HOST");
+                this.user = property.getProperty("CONFIG_DEFAULT_USER");
+                this.password = property.getProperty("CONFIG_DEFAULT_PASS");
+            }
+
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            initilizeErr = true;
+            initilizeErrCause = new ArrayList<String>();
+            initilizeErrCause.add("filePath");
+        }
+    }
+
+    public boolean initilized(){
+        return !initilizeErr;
+    }
+
+    public List<String> getInitilizeErrCause(){
+        if (initilizeErr)
+            return initilizeErrCause;
+        else
+            return null;
+    }
+    
+    public String host(){
+        return host;
+    }
+    
+    public String user(){
+        return user;
+    }
+    
+    public String password() {
+        return password;
+    }
+ }

+ 34 - 2
src/com/moviesdb/Controller.java

@@ -25,6 +25,9 @@ import javafx.stage.Stage;
 import java.time.chrono.AbstractChronology;
 import java.util.LinkedHashMap;
 import java.util.Map;
+//For reading properties from .properties file
+import com.moviesdb.ConnectionParams;
+
 
 public class Controller {
     @FXML
@@ -60,14 +63,32 @@ public class Controller {
     Movie[] movies;
     Movie my_movie;
     DataBaseConnector my_connector;
+    ConnectionParams workParams;
 
     double xOffset;
     double yOffset;
 
     public void initialize(Stage primaryStage){
-        my_connector = new DataBaseConnector();
-        my_connector.initConnection("d","1");
+        /*
+        FileInputStream fis;
+        Properties property = new Properties();
+
+        try {
+            fis = new FileInputStream("src/main/resources/config.properties");
+            property.load(fis);
+
+            String host = property.getProperty("db.host");
+            String login = property.getProperty("db.login");
+            String password = property.getProperty("db.password");
+
+            System.out.println("HOST: " + host
+                    + ", LOGIN: " + login
+                    + ", PASSWORD: " + password);
 
+        } catch (IOException e) {
+            System.err.println("ОШИБКА: Файл свойств отсуствует!");
+        }
+        */
 
         ImageView minimizeImageView = new ImageView(new Image(getClass().getResourceAsStream("media\\minimize.png")));
         minimizeImageView.setFitHeight(16);
@@ -111,6 +132,17 @@ public class Controller {
                 primaryStage.setY(event.getScreenY() + yOffset);
             }
         });
+
+        //TODO change path to connection.properties
+        workParams = new ConnectionParams("src/com/moviesdb/connection.properties");
+        if (!workParams.initilized())
+            //TODO this is temporaly handler
+            System.out.println(workParams.getInitilizeErrCause().toString());
+        else {
+            my_connector = new DataBaseConnector();
+            my_connector.initConnection(workParams);
+        }
+
     }
 
     public void loadPosters()

+ 9 - 10
src/com/moviesdb/DataBaseConnector.java

@@ -2,23 +2,22 @@ package com.moviesdb;
 
 import java.sql.*;
 import com.moviesdb.Movie;
-import java.util.Properties;
+import com.moviesdb.ConnectionParams;
 
 public class DataBaseConnector {
 
     Connection conn = null;
     public String result = "bad";
 
-    public void initConnection(String ui_user, String ui_pass) {
+    public void initConnection(ConnectionParams connectionParams) {
+
+        System.out.println("Trying to connect with params:\n\thost:\t\t" + connectionParams.host()
+                + "\n\tuser:\t\t" + connectionParams.user()
+                + "\n\tpassword:\t" + connectionParams.password());
+
         try {
-            // connect way #2
-            String url = "jdbc:mysql://192.168.1.119/moviesdb";
-            String user = ui_user;
-            String password = ui_pass;
-            user = "Veloe";
-            password = "Password1*";
-
-            conn = DriverManager.getConnection(url, user, password);
+            String url = "jdbc:mysql://" + connectionParams.host();
+            conn = DriverManager.getConnection(url, connectionParams.user(), connectionParams.password());
             if (conn != null) {
                 result = "good";
             }

+ 4 - 0
src/com/moviesdb/connection.properties

@@ -0,0 +1,4 @@
+
+CONFIG_DEFAULT_HOST = 192.168.1.119/moviesdb
+CONFIG_DEFAULT_USER = Veloe
+CONFIG_DEFAULT_PASS = Password1*