小第初学java,用JBuilder的GUI创建一个登陆窗口时不知道应该怎样进行验证,请大哥大姐们指点一下啊! public void jButton1_actionPerformed(ActionEvent e) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
System.out.println(ex);
}
String url="jdbc:odbc:users";
try {
Connection con = DriverManager.getConnection(url, "sa", "sa");
Statement stmt =con.createStatement();
String str1=jTextField1.getText();
ResultSet rs=stmt.executeQuery("select * from users where uid='"+str1+"'");
if(rs.next()){
String str2=jTextField2.getText();
ResultSet rt=stmt.executeQuery("select * from users where pwd='"+str2+"'");
if(rt.next()){
Frame2 f2 = new Frame2();
f2.setSize(400,500);
f2.show();
}else{
JOptionPane.showMessageDialog(this,"密码错误");
} }else{
JOptionPane.showMessageDialog(this,"帐号不存在");
}
} catch (SQLException ex1) {
System.out.println(ex1);
}
}
}总感觉上面的代码有问题,不能达到验证效果!
虚心请教ing.........
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
System.out.println(ex);
}
String url="jdbc:odbc:users";
try {
Connection con = DriverManager.getConnection(url, "sa", "sa");
Statement stmt =con.createStatement();
String str1=jTextField1.getText();
ResultSet rs=stmt.executeQuery("select * from users where uid='"+str1+"'");
if(rs.next()){
String str2=jTextField2.getText();
ResultSet rt=stmt.executeQuery("select * from users where pwd='"+str2+"'");
if(rt.next()){
Frame2 f2 = new Frame2();
f2.setSize(400,500);
f2.show();
}else{
JOptionPane.showMessageDialog(this,"密码错误");
} }else{
JOptionPane.showMessageDialog(this,"帐号不存在");
}
} catch (SQLException ex1) {
System.out.println(ex1);
}
}
}总感觉上面的代码有问题,不能达到验证效果!
虚心请教ing.........
LoginFrame lf= new LoginFrame();
lf.setSize(400,280);
int x = (Toolkit.getDefaultToolkit().getScreenSize().width - lf.getSize().width)/2;
int y = (Toolkit.getDefaultToolkit().getScreenSize().height - lf.getSize().height)/2;
lf.setLocation(x,y);
lf.setTitle("登录");
lf.setVisible(true); } public void jBexit_actionPerformed(ActionEvent e) {
if (JOptionPane.OK_OPTION== JOptionPane.showConfirmDialog(c,"是否真的退出?"," 退出提示!",JOptionPane.OK_CANCEL_OPTION))
{
System.exit(0);
} }
上面的我给错了
while (rs.next()){
if (this.jTName.getText().equals(rs.getString(用户名在数据库的第几列)) &&pwd.equals(rs.getString(密码在数据库的第几列))){
JOptionPane.showMessageDialog(null, "登录成功!");
this.dispose();
//主窗体show();}}
应该用equals判断是否与输入的内容相同.
public void jButton1_actionPerformed(ActionEvent e) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
System.out.println(ex);
}
String url="jdbc:odbc:users";
try {
Connection con = DriverManager.getConnection(url, "sa", "sa");
String UserID=jTextField1.getText();
String pwd=jTextField2.getText();
PreparedStatement sql=con.prepareStatement("select * from users where uid=? and pwd=?);
sql.setString(1,UserID);
sql.setString(2,pwd);
ResultSet rs=stmt.executeQuery();
if(rs.next()){
Frame2 f2 = new Frame2();
f2.setSize(400,500);
f2.show();
}else{
JOptionPane.showMessageDialog(this,"密码或账号错误");
} } catch (SQLException ex1) {
System.out.println(ex1);
}
}
}
是要找到 id 和 pwd 在数据库中的相应的列
用equals判断是否与输入的内容相同进行验证!
一语惊醒啊!
我在试试!