数据库中的每个表都有一个对应的javabean类与之对应,其中存储着表中所有的属性信息,为了实现登录验证,现在需要对用户输入的信息和数据库中的信息实现对比,为实现此功能:首先在Admin类中我创建了checkLogin方法,用于实现查询数据库中的的账号密码,并为类中定义的username和password变量完成初始化,返回查询结果。
package stuifo.Model;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
public class Admin {
private String username;
private String password;
public boolean checkLogin(String user, String pw) throws Exception {
// 加载配置文件,获取数据库连接信息
Properties properties = new Properties();
properties.load(new FileInputStream("src/Day3/stuifo/Tools/until.properties"));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection conn = dataSource.getConnection();
// 准备SQL语句并执行查询
String sql = "SELECT * FROM admin WHERE username = ? AND password = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, user);
stmt.setString(2, pw);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
//从结果集中获取用户名字段的值,并将其赋值给当前对象的username属性。
this.username = rs.getString("username");
//从结果集中获取密码字段的值,并将其赋值给当前对象的password属性。
this.password = rs.getString("password");
return true;
}else return false;//如果结果集为空返回false
}
}
在登录判断时对checkLogin返回的boolean值进行判断即可。
package stuifo;
import stuifo.Model.Admin;
import stuifo.Tools.MyTool;
import stuifo.UserView.UserUi;
import java.util.Scanner;
public class StudentRun {
public static void main(String[] args) throws Exception {
System.out.println("--------------------------------------");
System.out.println("**欢迎使用学生信息管理系统***");
System.out.println("--------------------------------------");
System.out.println("----请输入管理员的账号和密码进行登陆:-----");
Scanner scanner = new Scanner(System.in);
System.out.print("账号|:");
String user = scanner.next();
System.out.print("密码|:");
String pw = scanner.next();
String code = MyTool.code();
System.out.print("验证码("+code+")|:");
String userCode = scanner.next();
// 创建Admin对象并从数据库中获取管理员信息
Admin admin = new Admin();
if(!userCode.equals(code))
{
System.out.println("验证码错误");
}else if (admin.checkLogin(user, pw)) {
System.out.println("*****请选择你的业务操作******");
//生成操作界面 用户表现层
UserUi useUi = new UserUi();
useUi.UI();
} else {
System.out.println("账号或密码错误!");
}
}
}