Java: класс подключения, расширяющийся до класса входа - PullRequest
0 голосов
/ 17 декабря 2018

Я практикую Java-кодирование, и у меня возникают проблемы с расширением класса подключения до класса входа в систему.То, что я хочу сделать, это предложить пользователю войти в систему с именем пользователя и паролем.GetUser () собирается сохранить имя пользователя, а getPassword () забывает пароль пользователя.Когда я запускаю класс драйвера, он запрашивает у пользователя имя пользователя, но никогда не запрашивает пароль.Какие изменения мне нужно сделать, чтобы он также запросил пароль.

//Security class
import java.io.IOException;
import java.sql.SQLException;
import java.util.Scanner;

class SecurityDriver {

public String url = "myurl"; //Don't want to display my url to the public
public static String user;
public static String password;



public static String getUser() {
    Scanner in = new Scanner(System.in);
    System.out.println("Please enter username: ");

    return user = in.nextLine();
}

public String getPassword() {
    Scanner in = new Scanner(System.in);
    System.out.println("Please enter password: ");
    return password = in.nextLine();
}



public static void main(String[] args) throws IOException {

    SecurityTest stObject = new SecurityTest();
    stObject.simpleQuery();
}

Мой следующий бит кода - это класс соединения.

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class SecurityTest extends SecurityDriver{




public void simpleQuery() throws IOException{


    SecurityDriver userObject = new SecurityDriver();
    SecurityDriver.getUser();


    Connection con;
    Statement stmt;
    ResultSet rs;

    try {
        Class.forName("com.ibm.as400.access.AS400JDBCDriver");
        con = DriverManager.getConnection(url, user, password);
        System.out.println("CONNECTED");
    }
    catch (ClassNotFoundException e)
    {
          System.err.println("Could not load JDBC driver");
          System.out.println("Exception: " + e);
          e.printStackTrace();
        }

        catch(SQLException ex)                                              
        {
          System.err.println("SQLException information");
          while(ex!=null) {
            System.err.println ("Error msg: " + ex.getMessage());
            System.err.println ("SQLSTATE: " + ex.getSQLState());
            System.err.println ("Error code: " + ex.getErrorCode());
            ex.printStackTrace();
            ex = ex.getNextException(); // For drivers that support chained exceptions
          }
        }


}

}

1 Ответ

0 голосов
/ 17 декабря 2018

Кажется, вы вызываете только метод getUser () в своем методе simpleQuery ().

Попробуйте также вызвать здесь метод getPassword ().

РЕДАКТИРОВАТЬ: Примерно так:

public void simpleQuery() throws IOException{


    SecurityDriver userObject = new SecurityDriver();
    SecurityDriver.getUser();
    SecurityDriver.getPassword();

//...rest of code
...