如何检查Java中的数据库凭据是否正确?

时间:2013-09-18 13:05:17

标签: java sql credentials

我有这两种方法。我似乎无法让它发挥作用。第一种方法初始化数据库连接,第二种方法在登录过程后运行另一个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);


}

3 个答案:

答案 0 :(得分:1)

您可以执行一个无效的语句来查看连接是否有效。

// for example
select 1 from dual; 

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

请参阅http://docs.oracle.com/cd/E13222_01/wls/docs81/ConsoleHelp/jdbc_connection_pools.html以获取验证声明概述(表127-1 DBMS的默认测试表名称)。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

基于连接逻辑从getDBConnection()方法返回true或false 然后使用login方法中的值并执行激活GUI的操作