亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下,為什么它無論是“==”還是“.equals()”都先試試不相等的!求解決!

如下,為什么它無論是“==”還是“.equals()”都先試試不相等的!求解決!

喵喔喔 2022-05-26 19:15:02
import javax.swing.*;import java.awt.*;import java.sql.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JFrameDemo{String passwordD=null;public static String persontyDD=null;public JFrameDemo(){final JFrame frame1 = new JFrame("超市管理系統登陸界面");final JButton button = new JButton("登陸");JLabel labelName = new JLabel("請輸入賬號");JLabel labelNumber = new JLabel("請輸入密碼");final JTextField tfName = new JTextField(12);final JTextField tfNumber = new JTextField(12);JMenuBar menubar = new JMenuBar();JMenu mu = new JMenu("功能");JMenuItem help = new JMenuItem("幫助");JMenuItem quet = new JMenuItem("退出");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Connection con;Statement sql;ResultSet rs = null;String fu="超級用戶";if(e.getSource()==button){String idin = tfName.getText();String keyin = tfNumber.getText();try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;databaseName=Supermarket";String user="sa";String password="123456";con=DriverManager.getConnection(url,user,password);sql = con.createStatement();rs = sql.executeQuery("SELECT * FROM password where ID='"+ idin + "'");while (rs.next()) {passwordD= rs.getString(2); persontyDD= rs.getString(3);}con.close();} catch (Exception g){System.out.println(g);}if (persontyDD!=null){frame1.dispose();ViewDemo frame=new ViewDemo();System.out.println(persontyDD);if(persontyDD==fu){System.out.println("1");}}}else{frame1.dispose();Close frame=new Close();}}} );public static void main(String args[]) {new JFrameDemo();}}
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

1、字符串判斷內容相等用.equals();如果是比較是否是同一個對象(即內容和引用相同),則用==
2、passwordD= rs.getString(2); 改為:passwordD= rs.getString("passwordD");
persontyDD= rs.getString(3);改為:persontyDD= rs.getString("persontyDD");
因為你的數據庫中字段的順序和你getString后面的數字不一致。
寫了個小程序,你看看。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class LCP_TEST extends Test{
public static void main(java.lang.String[] args) {
String url = "jdbc:oracle:thin:@100.100.100.129:1521:auxoms";
String user = "osm";
String password = "osm";
try {
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = " select 'aa' username,'123456' passwordD from dual";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String username = rs.getString("username");
String passwordD = rs.getString("passwordD");
System.out.println("username:"+username);
System.out.println("passwordD:"+passwordD);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}



查看完整回答
反對 回復 2022-05-30
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

“==”肯定是不行的,因為兩個字符串的地址可能不相同,應該用.equals(),不知是否是您寫的有問題,其實更簡單的是不用單獨賦值一個fu,直接.equals("超級用戶")就行了,你先試試。

查看完整回答
反對 回復 2022-05-30
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

看看你查詢出來的結果里面是不是包含空格?刪除字符串首部和尾部的空格,用.equals().Trim ( string ) 試試 !

查看完整回答
反對 回復 2022-05-30
  • 3 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號