在我使用数据库作为后端的java程序中,详细信息不断重复

在我使用数据库作为后端的java程序中,详细信息不断重复,java,database,Java,Database,我急需帮助,希望你能给我一些帮助。 请参阅以下代码。 在登录页面中,我将收到的卖方id和密码分别存储在receivesid和receivepass中。我在检查密码是否与相应的用户名匹配时使用了这些表。 当我登录到详细信息页面(PageD)时,我想在receivesid中获得具有相应id的卖家的详细信息。在第一次尝试中,我得到了我想要的一切。但每次登录时都会显示相同的详细信息,即使卖家id不同。此外,delete语句也不起作用。正如你所看到的,我已经把它们作为评论的一部分 你认为你能帮我吗?请务必

我急需帮助,希望你能给我一些帮助。 请参阅以下代码。 在登录页面中,我将收到的卖方id和密码分别存储在receivesid和receivepass中。我在检查密码是否与相应的用户名匹配时使用了这些表。 当我登录到详细信息页面(PageD)时,我想在receivesid中获得具有相应id的卖家的详细信息。在第一次尝试中,我得到了我想要的一切。但每次登录时都会显示相同的详细信息,即使卖家id不同。此外,delete语句也不起作用。正如你所看到的,我已经把它们作为评论的一部分

你认为你能帮我吗?请务必回复。我很感激能得到的任何帮助。 请原谅我的英语不好

  // LOGIN

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;
import java.awt.font.*;
class SellerPage extends JFrame implements ActionListener
{
    JLabel cl1=new JLabel("SELLER ID");
    public JTextField ct1=new JTextField(20);
    JLabel cl2=new JLabel("PASSWORD");
    JPasswordField cp1=new JPasswordField(20);
    JButton cb1=new JButton("LOGIN");
    JButton cb2=new JButton("ARE YOU NEW?");
    String user="";
    String passw="";
               //Vector cbitems=new Vector();
               public SellerPage()
     {
    super("REAL ESTATE SYSTEM");
    setLayout(null);
    setSize(800,800);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    cl1.setBounds(80,300,150,20);
    ct1.setBounds(350,300,150,30);
    cl2.setBounds(80,350,150,20);
    cp1.setBounds(350,350,150,30);
    cb1.setBounds(300,500,150,30);
    cb2.setBounds(300,550,150,30);
                                Font f1=new Font(" ",Font.BOLD,20);
                               cl1.setFont(f1);
                                cl1.setForeground(Color.white);
                                Font f2=new Font(" ",Font.BOLD,20);
                                cl2 .setFont(f2);
                                 cl2.setForeground(Color.white);
                                 setContentPane(new JLabel (new ImageIcon("login.jpg")));
    add(cl1);
    add(ct1);
    add(cl2);
    add(cp1);
    add(cb1);
    add(cb2);
    cb1.addActionListener(this);
    cb2.addActionListener(this);
}
public void actionPerformed (ActionEvent ae)
{
    try
    {
         // DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                      Class.forName("oracle.jdbc.driver.OracleDriver");  
                      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@Sajiendran-PC:1521:XE","system","password"); 
                      //   Connection con=DriverManager.getConnection("jdbc:odbc:am","system","password");                 
                             Statement stmt=con.createStatement(); 
        if(ae.getSource()==cb1)
        {

              String sqlup="select * from  password where seller_id='"+ct1.getText()+"'";
            PreparedStatement s=con.prepareStatement(sqlup);
             ResultSet rs=s.executeQuery();
                       if(rs.next())
                     {
            user=rs.getString(1);
            passw=rs.getString(2);
                      }      
                      rs.close();
                      s.close();
                      if(cp1.getText().equals(passw) )
                      {
               stmt.executeUpdate("insert into receivesid values('"+ct1.getText()+"')");
               stmt.executeUpdate("insert into receivepass values('"+cp1.getText()+"')");
                CustDetails cd1=new CustDetails();
                dispose();
                           }
                      else
                      {
                JOptionPane.showMessageDialog(this,"Invalid username or password!","Error",JOptionPane.ERROR_MESSAGE);
                      }
        }
        else if(ae.getSource()==cb2)
        {
            SignUpPage sup1=new SignUpPage();
            dispose();
        }
    }
    catch(Exception e){}
   }
}
 class PageSeller
 {
    public static void main(String arg[])
    {
    SellerPage sp=new SellerPage();
}
 }

      //DETAILS

           import javax.swing.*;
          import java.awt.event.*;
            import java.awt.*;
                import java.sql.*;
            import java.sql.ResultSet.*;
            import java.sql.PreparedStatement.*;
          class CustDetails extends JFrame implements ActionListener
         {
         JLabel dl1=new JLabel("NAME");
     JTextField dt1=new JTextField(30);
     JLabel dl2=new JLabel("SELLER ID");
    JTextField dt2=new JTextField(20);
    JLabel dl3=new JLabel("ADDRESS");
    JTextField dt3=new JTextField(100);
    JLabel dl4=new JLabel("PHONE NUMBER");
    JTextField dt4=new JTextField(20);
    JLabel dl5=new JLabel("EMAIL");
    JTextField dt5=new JTextField(30);
    JButton db1=new JButton("EDIT DETAILS");
    JButton db2=new JButton("ADS POSTED");
    JButton db3=new JButton("DELETE");
    JButton db4=new JButton("ADD NEW");
    JButton db5=new JButton("UPDATE");
               JButton db6=new JButton("LOGOUT");
   String s="";
   String a="";
   public  CustDetails()
   {
     super("WELCOME");
         setLayout(null);
        setSize(500,500);
        setVisible(true);
           setDefaultCloseOperation(EXIT_ON_CLOSE);
           dl1.setBounds(10,10,150,20);
             dt1.setBounds(170,10,200,20);
             dl2.setBounds(10,40,150,20);
             dt2.setBounds(170,40,200,20);
             dl3.setBounds(10,70,150,20);
             dt3.setBounds(170,70,200,100);
             dl4.setBounds(10,180,150,20);
             dt4.setBounds(170,180,200,20);
            dl5.setBounds(10,220,150,20);
             dt5.setBounds(170,220,200,20);
             db1.setBounds(20,260,150,20);
             db2.setBounds(20,300,150,20);
             db3.setBounds(200,260,150,20);
            db4.setBounds(200,290,150,20);
            db5.setBounds(200,320,150,20);
            db6.setBounds(380,10,150,20);
    load();
          add(dl1);
          add(dt1);
             add(dl2);
            add(dt2);
            add(dl3);
            add(dt3);
            add(dl4);
            add(dt4);
            add(dl5);
            add(dt5);
             add(db1);
            add(db2);
            add(db3);
             add(db4);
            add(db5);
            add(db6);
          db1.addActionListener(this);
          db2.addActionListener(this);
             db3.addActionListener(this);
            db4.addActionListener(this);
             db5.addActionListener(this);
            db6.addActionListener(this);

 }
public void load()
{
    try
    {

    Class.forName("oracle.jdbc.driver.OracleDriver");  
                  Connection con=DriverManager.getConnection("jdbc:oracle:thin:@Sajiendran-PC:1521:XE","system","password"); 
                    Statement stmt=con.createStatement(); 
    String sql="select * from  receivesid";
    PreparedStatement st=con.prepareStatement(sql);
    ResultSet rs=st.executeQuery();
    rs.next();
    s=rs.getString(1);
    rs.close(); 
    st.close();
    String sql1="select * from seller where seller_id='"+s+"'";
    PreparedStatement st1=con.prepareStatement(sql1);
    ResultSet rs1=st1.executeQuery();
    if(rs1.next())
    {
        dt1.setText(rs1.getString(2));
        dt2.setText(rs1.getString(1));
        dt3.setText(rs1.getString(3));
        dt5.setText(rs1.getString(4));
    }
    rs1.close();
    st1.close();
    String sql2="select * from phone where seller_id='"+s+"'";
    PreparedStatement st2=con.prepareStatement(sql2);
    ResultSet rs2=st2.executeQuery();
    if(rs2.next())
    {
        dt4.setText(rs2.getString(2));
    }
    rs2.close();
    st2.close();
    /*dt1.setEditable(false);
    dt2.setEditable(false);
    dt3.setEditable(false);
    dt4.setEditable(false);
    dt5.setEditable(false);*/

    }
    catch(Exception e)
    {
        System.out.print(e);
    }   
}
 public void actionPerformed(ActionEvent ae)
 {   
                         try
                          {
    Class.forName("oracle.jdbc.driver.OracleDriver");  
                  Connection con=DriverManager.getConnection("jdbc:oracle:thin:@Sajiendran-PC:1521:XE","system","password"); 
                    Statement stmt=con.createStatement();  

                               if(ae.getSource()==db1)
    {
        EditPage ep1=new EditPage();
        dispose();
    }
    else if(ae.getSource()==db3)
    {
        CustDel cd1=new CustDel();
        dispose();

    }
    else if(ae.getSource()==db4)
    {
        NewAd na1=new NewAd();
        dispose();
    }
    else if(ae.getSource()==db5)
    {
        Adnumber adn1=new Adnumber();
        dispose();
    }
                 else if(ae.getSource()==db6)
                {
        /*String sd="delete from receivesid";
    String sd1="delete from receivepass";
    stmt.executeUpdate(sd);
    stmt.executeUpdate(sd1);*/
    dt1.setText(" ");
        dt2.setText(" ");
        dt3.setText(" ");
        dt5.setText(" ");
    JOptionPane.showMessageDialog(this,"LOGOUT SUCCESSFULL","SUCCESS",JOptionPane.INFORMATION_MESSAGE);
    Proj p1=new Proj();
        dispose();
                }
                     }
                       catch(Exception e)
         {
         }   
 }
}
 class PageD
 {
    public static void main(String arg[])
   {
    CustDetails CD=new CustDetails();
   }
  }

与其使用表,为什么不通过构造函数将登录的用户传递给
CustDetails

public CustDetails(String s) {
    super("WELCOME");
    this.s = s;
    //Rest of code
}
因此,在验证密码后,您将:

CustDetails cd1 = new CustDetails(ct1.getText());
在您当前的代码中,由于您说您没有从
receivesid
删除数据,因此它会不断获取第一个条目-因此只会产生相同的用户。如果您仍然喜欢tables方法,请告诉我们您在删除时遇到了什么错误?为什么你认为它不起作用


另外,请注意JPasswordField.getText()因某种原因被弃用。首选getPassword()

我尝试使用构造函数,但它使它更复杂。在再次登录之前,我手动删除了receivesid中的所有内容。