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