Java:连接 class 扩展到登录 class
Java: Connection class extending to login class
我正在练习一些 java 编码,我在连接 class 扩展到登录 class 时遇到了一些问题。我想要做的是提示用户使用用户名和密码登录。 getUser() 将存储用户名,而 getPassword() 将不经意地存储用户名的密码。当我 运行 驱动程序 class 它提示用户输入用户名,但从不提示输入密码。我需要进行哪些更改,以便它也会提示输入密码。
//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();
}
我的下一段代码是连接 class。
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
}
}
}
}
您似乎只在 simpleQuery() 方法中调用了 getUser() 方法。
也尝试在此处调用 getPassword() 方法。
编辑:像这样:
public void simpleQuery() throws IOException{
SecurityDriver userObject = new SecurityDriver();
SecurityDriver.getUser();
SecurityDriver.getPassword();
//...rest of code
我正在练习一些 java 编码,我在连接 class 扩展到登录 class 时遇到了一些问题。我想要做的是提示用户使用用户名和密码登录。 getUser() 将存储用户名,而 getPassword() 将不经意地存储用户名的密码。当我 运行 驱动程序 class 它提示用户输入用户名,但从不提示输入密码。我需要进行哪些更改,以便它也会提示输入密码。
//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();
}
我的下一段代码是连接 class。
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
}
}
}
}
您似乎只在 simpleQuery() 方法中调用了 getUser() 方法。
也尝试在此处调用 getPassword() 方法。
编辑:像这样:
public void simpleQuery() throws IOException{
SecurityDriver userObject = new SecurityDriver();
SecurityDriver.getUser();
SecurityDriver.getPassword();
//...rest of code