0

我有这两种方法。我似乎无法让它工作。第一种方法初始化数据库连接,第二种方法在登录过程之后运行另一个 GUI。我想在调用 GUI 类之前先检查凭据是否正确。有人对我如何实现这一目标有任何建议吗?

    public void getDBConnection() throws SQLException{
    userid = usernameF.getText();
    password = passwordF.getText();
    OracleDataSource ds;
    ds = new OracleDataSource();
    ds.setURL(jdbcUrl);
    conn = ds.getConnection(userid,password);

    if(conn){
    System.out.println("Connected Successfully to Database. User: " + userid);
    }
    else {
        System.out.println("Wrong Data");
    }

}



    private void loginbox_actionPerformed(ActionEvent e) {


    try {
        getDBConnection();
    } 
    catch (SQLException f) {
        status.setText("INVALID USERNAME OR PASSWORD");
        }



    GUI guid = new GUI();
    guid.setVisible(true);
    guid.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    System.out.println(userid + " " + password);


}
4

3 回答 3

1

您可以执行一条没有效果的语句,以查看连接是否有效。

// for example
select 1 from dual; 

连接池使用此策略在返回连接之前检查连接是否有效。

有关验证语句概述,请参见http://docs.oracle.com/cd/E13222_01/wls/docs81/ConsoleHelp/jdbc_connection_pools.html(表 127-1 DBMS 的默认测试表名称)。

于 2013-09-18T13:16:00.960 回答
0

getConnection返回一个java.sql.Connection,您的 if 语句应该使用该isValid方法来查看它是否已连接,例如该行可能是if (conn.isValid(5)) {(其中5是等待的最大秒数)

于 2013-09-18T13:14:40.673 回答
0

根据连接逻辑从 getDBConnection() 方法返回 true 或 false,然后使用 login 方法中的值并执行是否激活 GUI 的动作

于 2013-09-18T13:15:50.817 回答