最近在用Java代码写一个用户登录并实现窗体跳转的程序,并且连接access数据库,问题是输入正确的姓名和密码都显示“用户或者密码不存在”,原代码如下:(数据库配置都是正确的)
denglu_1.javaimport java.awt.*;....
(包部分没问题)
public class denglu_1 extends JFrame
{
TextField f1;
TextField f2;
JButton b1;
JButton b2;
denglu_1()
{
Container cp=getContentPane();
cp.setLayout(new GridLayout(4,1));
Label l1=new Label("姓名");
Label l2=new Label("密码");
Panel p1=new Panel();
Panel p2=new Panel();
Panel p4=new Panel();
f1=new TextField(10);
f2=new TextField(10);
f2.setEchoChar('*');
b1=new JButton("登录");
b2=new JButton("重置");
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p4.add(b1);
p4.add(b2);
cp.add(p1);
cp.add(p2);
cp.add(p4);
b1.addActionListener(new Enter());
b2.addActionListener(new ReWrite());
}
public static void main(String[] args)
{ denglu_1 log=new denglu_1();
log.setTitle("系统登录");
log.setSize(600,200);
log.setVisible(true);
}
class Enter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Boolean ys=false;
if(f1.getText().trim().length()>0)
{ ys=this.yanzheng(f1.getText().trim(),f2.getText().trim());
if(ys)
{
setVisible(false);
Caozuo f=new Caozuo();;
f.setSize(500,400);
f.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null,"用户或者密码不存在!");}
}
}
public Boolean yanzheng(String id,String name)
{
Boolean has=false;//判断用户是否存在
Connection con;
Statement sql;
ResultSet rs;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
try{
con=DriverManager.getConnection("jdbc:odbc:sun","xie","123");
sql=con.createStatement();
rs=sql.executeQuery("Select * FROM denglu");
while(rs.next())
{
if(id.equals(rs.getString(1))&&name.equals(rs.getString(2)))
{
has=true;
}
}
con.close();
}
catch(SQLException el)
{}
return has;
}
}
class ReWrite implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
f1.setText("");
f2.setText("");
f1.requestFocus();
}
}
}
问题出在哪儿啊?
denglu_1.javaimport java.awt.*;....
(包部分没问题)
public class denglu_1 extends JFrame
{
TextField f1;
TextField f2;
JButton b1;
JButton b2;
denglu_1()
{
Container cp=getContentPane();
cp.setLayout(new GridLayout(4,1));
Label l1=new Label("姓名");
Label l2=new Label("密码");
Panel p1=new Panel();
Panel p2=new Panel();
Panel p4=new Panel();
f1=new TextField(10);
f2=new TextField(10);
f2.setEchoChar('*');
b1=new JButton("登录");
b2=new JButton("重置");
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p4.add(b1);
p4.add(b2);
cp.add(p1);
cp.add(p2);
cp.add(p4);
b1.addActionListener(new Enter());
b2.addActionListener(new ReWrite());
}
public static void main(String[] args)
{ denglu_1 log=new denglu_1();
log.setTitle("系统登录");
log.setSize(600,200);
log.setVisible(true);
}
class Enter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Boolean ys=false;
if(f1.getText().trim().length()>0)
{ ys=this.yanzheng(f1.getText().trim(),f2.getText().trim());
if(ys)
{
setVisible(false);
Caozuo f=new Caozuo();;
f.setSize(500,400);
f.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null,"用户或者密码不存在!");}
}
}
public Boolean yanzheng(String id,String name)
{
Boolean has=false;//判断用户是否存在
Connection con;
Statement sql;
ResultSet rs;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{}
try{
con=DriverManager.getConnection("jdbc:odbc:sun","xie","123");
sql=con.createStatement();
rs=sql.executeQuery("Select * FROM denglu");
while(rs.next())
{
if(id.equals(rs.getString(1))&&name.equals(rs.getString(2)))
{
has=true;
}
}
con.close();
}
catch(SQLException el)
{}
return has;
}
}
class ReWrite implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
f1.setText("");
f2.setText("");
f1.requestFocus();
}
}
}
问题出在哪儿啊?
if(id.equals(rs.getString(1))&&name.equals(rs.getString(2)))
{
has=true;
}
里面就抛异常了,
你试试在catch(SQLException el) {} 里面加日志打印
&& name.equals(rs.getString(2))) {
has = true;
}应该是你这个if判断有问题