自己写的小程序中密码和账号输入都正确,但是不能正确进入下一个界面

写了一个Java小程序,但是业务逻辑上出现了一些问题。具体的问题是当输入正确的密码与账号时依旧显示密码或者账号错误。经过csdn上的大神指点,查了一下==与equals的区别,并写了一个测试小程序,发现似乎确实是用错了==,而应该是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();
			}

		}
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值