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