自己写的小程序中密码和账号输入都正确,但是不能正确进入下一个界面
2015-05-04 12:42
239 查看
写了一个Java小程序,但是业务逻辑上出现了一些问题。具体的问题是当输入正确的密码与账号时依旧显示密码或者账号错误。经过csdn上的大神指点,查了一下==与equals的区别,并写了一个测试小程序,发现似乎确实是用错了==,而应该是equals。
==与equals的区别为:
==用于比较基本类型,比如int,double等类型,是从内存的栈中取出其位置来比较,比较的是其在栈中的位置。==是对内存的操作。
equals用于比较对象,比如String类型的对象,是从堆中取其值来比较其大小。
比如说textfield1.getText()==textfield2.getText(),结果为false。但是改为textfield1.getText.equals(textfield2.getText()),则结果为true。
注意,该用equals的地方用了==,会造成很大的问题。
代码如下:
==与equals的区别为:
==用于比较基本类型,比如int,double等类型,是从内存的栈中取出其位置来比较,比较的是其在栈中的位置。==是对内存的操作。
equals用于比较对象,比如String类型的对象,是从堆中取其值来比较其大小。
比如说textfield1.getText()==textfield2.getText(),结果为false。但是改为textfield1.getText.equals(textfield2.getText()),则结果为true。
注意,该用equals的地方用了==,会造成很大的问题。
代码如下:
public void actionPerformed(ActionEvent e) { boolean idexist=true; String sql="select * from INFORMATIONOFUSER"; String dbdriver="oracle.jdbc.driver.OracleDriver"; String dburl="jdbc:oracle:thin:@localhost:1521:orcl"; String dbuser="scott"; String dbpassword="123456"; String passwordofuser=""; Connection dataconnection=null; Statement statement=null; ResultSet resultset=null; try { Class.forName(dbdriver); dataconnection=DriverManager.getConnection(dburl, dbuser, dbpassword); statement=dataconnection.createStatement(); resultset=statement.executeQuery(sql); while(resultset.next()) { if(resultset.getString(1).equals(idtextfield.getText()))//can't use == { idexist=true; passwordofuser=resultset.getString(2); break; } } if((idexist==true)&&(passwordtextfield.getText().equals(passwordofuser))) { functionclass.setVisible(true); } else { JOptionPane.showMessageDialog(this,"账号或者密码错误"); } } catch (ClassNotFoundException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } catch (SQLException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } finally { try { resultset.close(); statement.close(); dataconnection.close(); } catch (SQLException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } } }
相关文章推荐
- Ubuntu登录异常: 输入正确的密码, 但是却无法进入系统, 总是返回到登录界面, 但是用ctrl+alt+F1-F文字界面登录都可以进入。
- 12.04 ubuntu 进入登录界面,账号密码确定是正确的但是进不来系统。
- ubuntu忽然不能登录,输入密码正确一直返回登录界面
- 启动系统,输入正确的账号和密码,点击登录,屏幕一闪,然后又跳回登录界面
- 设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。
- 开机先出先自己的程序界面,输入用户名和口令后再进入windows
- linux X界面 输入密码正确,但是无法登陆系统,命令行界面可以登陆
- ubuntu正确输入密码无法进入图形界面的解决
- ubuntu输入了正确的用户名密码但是无法登录(环境变量设置错误所以不能登录系统)
- linux X界面 输入密码正确,但是无法登陆系统,命令行界面可以登陆
- 设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。
- 在/etc/profile文件错误,导致ubuntu系统进入登陆界面输入正确密码又回到原来登陆界面。
- Ubuntu12.04 图形界面登录输入正确密码后无法进入桌面又跳转到登录界面
- ubuntu 16.04 图形界面登录输入正确密码后无法进入桌面又跳转到登录界面
- Ubuntu 输入正确的账号密码,登陆后又跳回到登录界面 解决方案
- //设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。 import java.awt.*; import java.awt.event.*; import
- 解决Ubuntu输入正确密码后无法进入桌面,一直停留在登陆界面的问题
- //设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。 import java.awt.*; import java.awt.event.*; import
- ubuntu输入正确密码后不能进入系统
- //设计登陆窗口界面,当输入账号密码正确时,界面如图一所示,当输入账号密码有误时,界面如图二所示。