public boolean login(Admin admin) throws SQLException, ClassNotFoundException { String sql="select * from admin where id=? and password=?"; Class.forName(JDBC_DRIVER); Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, admin.getID()); ps.setString(2, admin.getPassword()); // ps.setString(3,admin.getName()); ResultSet rs = ps.executeQuery(); int ans = 0; if(rs.next()) { ans = 1; } rs.close(); ps.close(); conn.close(); if(ans == 1) { return true; } else return false; } public int JudgeAdmin() { try { if(login(this.admin)) { System.out.println("登录成功"); return 1; }else { return 0; } }catch(Exception e) { //e.printStackTrace(); //System.out.println("!!!!!!!!!"); } return 0; } }解释一下这段代码
时间: 2024-02-14 13:36:13 浏览: 25
这段代码实现了一个管理员登录系统。其中 `login` 方法用于验证管理员的身份,接受一个 `Admin` 对象作为参数,该对象包含了管理员的账号和密码。方法中通过 JDBC 连接到数据库,查询管理员表中是否存在对应的账号和密码记录,如果存在则返回 `true`,否则返回 `false`。`JudgeAdmin` 方法调用 `login` 方法进行登录验证,如果验证成功则返回 `1`,表示登录成功,否则返回 `0`,表示登录失败。如果在执行过程中出现异常,则返回 `0`。代码中的注释是对异常处理部分的说明。
相关问题
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Login { Admin admin; void setAdmin(Admin admin) { this.admin=admin; //System.out.println(this.admin.getPassword()+" " + this.admin.getID()); } /* * JudgeAdmin()方法 * 判断User的ID和密码是否正确,如果正确,显示登录成功 * 如果错误,弹出一个窗口,显示账号或密码错误 */ private String driver = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/qqq?serverTimezone=UTC&characterEncoding=utf-8"; private String user = "root"; private String password = "root"; public boolean login(Admin admin) throws SQLException, ClassNotFoundException { String sql="select * from admin where id=? and password=?"; Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, admin.getID()); ps.setString(2, admin.getPassword()); ResultSet rs = ps.executeQuery(); int ans = 0; if(rs.next()) { ans = 1; } rs.close(); ps.close(); conn.close(); if(ans == 1) { return true; } else return false; } int JudgeAdmin() { try { if(login(this.admin)) { System.out.println("登录成功"); return 1; }else { return 0; } }catch(Exception e) { //e.printStackTrace(); //System.out.println("!!!!!!!!!"); } return 0; } }
这段代码是一个 Java 类,名为 Login,其中包含了一个 Admin 类型的属性 admin 和多个方法。其中 setAdmin 方法用于设置 admin 属性的值,login 方法用于判断用户输入的 ID 和密码是否正确,JudgeAdmin 方法用于判断用户的登录是否成功。在 login 方法中,使用了 JDBC 连接数据库,执行了一次 SQL 查询语句,根据查询结果返回 true 或 false。在 JudgeAdmin 方法中,调用了 login 方法,如果返回 true,则打印出登录成功的信息并返回 1,否则返回 0。
public boolean JudgeRegister() throws SQLException, ClassNotFoundException { if(this.name.equals("")) { JOptionPane.showMessageDialog(null, "用户名不能为空!", "用户名", JOptionPane.ERROR_MESSAGE); return false; } if(this.ID.equals("")) { JOptionPane.showMessageDialog(null, "账号不能为空!", "账号为空", JOptionPane.ERROR_MESSAGE); return false; } if(this.password.equals("")) { JOptionPane.showMessageDialog(null, "密码不能为空!", "密码为空", JOptionPane.ERROR_MESSAGE); return false; } if(!this.password.equals(this.confirmpassword)) { JOptionPane.showMessageDialog(null, "两次输入的密码不一致!", "密码不一致", JOptionPane.ERROR_MESSAGE); return false; } //符合规则,弹出注册成功的窗口,并将账号添加数据库 JOptionPane.showMessageDialog(null, "注册成功"); addAdmin(); return true; } //向数据库添加Admin账户 void addAdmin() throws ClassNotFoundException, SQLException { String sql="insert into admin (id, name, password) values (?,?,?)"; Class.forName(driver); try { Connection conn = DriverManager.getConnection(url, user, sqlpassword); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, this.ID); ps.setString(2, this.name); ps.setString(3, this.password); int res=ps.executeUpdate(); if (res>0){ System.out.println("成功!"); } ps.close(); conn.close(); }catch(SQLException ex) { System.out.println("添加用户失败!"); ex.printStackTrace(); } } }
这段代码是用来实现注册功能的,主要是判断用户输入的信息是否符合要求,然后将用户的信息添加到数据库中。其中,addAdmin() 方法是用来向数据库中添加 Admin 账户的。这段代码使用了 JDBC 技术来连接数据库,并使用 PreparedStatement 对象来执行 SQL 语句,实现了防 SQL 注入的功能。