用java实现用户登录

方法1、直接设置用户名及密码登录

   public static void main(String[] args) {
        //用户名及密码
        String username = "123456798";
        String passward = "123456";
        //键盘输入
        for (int i=0;i<3;i++){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String s1 = scanner.nextLine();
        System.out.println("请输入密码:");
        String s2 = scanner.nextLine();
        if (s1.equals(username) && s2.equals(passward)){
            //&&:逻辑与运算符,将两个表达式连接成一个。两个表达式必须都为 true,整个表达式才为 true
            System.out.println("登录成功");
            break;
        }else if (2-i == 0){
            System.out.println("输入次数已达上限,请五分钟后再试");
        }else {    //2,1,0   i:0,1,2
            System.out.println("登录失败,你还有"+(2-i)+"次机会");
        }
    }
}

方法2、连接数据库用户登录

//JDBC工具类
public class JDBCUTILS {
    private static String url;//局部变量提供到成员的位置,声明3个成员变量
    private static String user;
    private static String password;
    private static String driver; //把配置文件的driver读进来,变成通用的,声明成员变量driver
//文件的读取,只需要读取一次即可拿到这些值,使用静态代码块,静态代码块随着类的加载而加载,只执行1次
    static { //读取资源文件,获取值
    try {
        //创建Properties集合类
        Properties pro = new Properties();
        //classLoader类加载器,获取src路径下的文件
        ClassLoader classLoader = JDBCUTILS.class.getClassLoader();
        URL res = classLoader.getResource("jdbc.properties"); //定义文件的绝对路径
        String path = res.getPath();//获取字符串路径
        //System.out.println(path);
        //加载文件
//        pro.load(new FileReader("src/jdbc.properties")); src/jdbc.properties:src下面的jdbc.properties
//        pro.load(new FileReader("D:\\java file\\demo\\src\\com\\dmeo3\\src\\jdbc.properties")); 绝对路径
        pro.load(new FileReader(path));
        //获取数据,赋值
        url = pro.getProperty("url");//"url"要和配置文件jdbc.properties的名字一样
        user = pro.getProperty("user");
        password = pro.getProperty("password");
        driver = pro.getProperty("driver");
        //注册驱动
        Class.forName(driver);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

}

    //抽取一个方法释放资源
    public static void close(Statement stmt,Connection conn){
        if (stmt != null){
            try {
                stmt.close(); //先释放小的,再释放大的
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

//抽取一个方法获取连接对象
    public static Connection getConnection() throws SQLException { //获取连接,返回return连接对象
      //  return null; 占位,不报错
        return DriverManager.getConnection(url,user,password); //把这个局部变量变成成员变量,静态代码块给成员变量一赋值这儿就能用了
    }

//抽取一个方法释放资源.重载的形式
  public static void close(ResultSet rs,Statement stmt,Connection conn){
        if (rs != null){
            try {
                rs.close(); //先释放小的,再释放大的
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null){
            try {
                stmt.close(); //先释放小的,再释放大的
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

src下面右键新建文件jdbc.properties

url=jdbc:mysql:///db1
user=root
password=root
driver=com.mysql.jdbc.Driver
public class Test {
    public static void main(String[] args) {
        //键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = sc.nextLine();
        System.out.println("请输入密码:");
        String password = sc.nextLine();
        //调用方法,login是非静态方法,创建对象
        boolean flag = new com.dmeo3.Test().login(username,password);
        //判断结果,输出不同语句
        if (flag){ //登录成功
            System.out.println("登录成功");
        }else {
            System.out.println("用户名或密码错误");
        }
    }
    public boolean login(String username,String password){
        if (username != null || password != null){
            return false;  //username和password都不为空
        }
        //连接数据库判断是否登录成功
        Connection conn = null;
        Preparedstatement pstmt = null;
        ResultSet rs = null;
        try {
            //获取数据
//            Connection conn = JDBCUTILS.getConnection();
            conn = JDBCUTILS.getConnection();
            //定义sql
            String sql = "select * from user where username = ?and password = ?";
            //获取执行sql的对象
//            Preparedstatement pstmt = conn.Preparedstatement(sql);
			pstmt = conn.Preparedstatement(sql);
			//给?赋值
			pstmt.setString(1,username);  //第1个?
			pstmt.setString(2,username);  //第2个?
            //执行查询,不需要传递参数
            rs = pstmt.executeQuery();
            //判断结果集有没有数据
            /*if (rs.next()) { //如果有下一行,则返回true
                return true;
            }else {
                return false;
            }*/
            return rs.next();//如果有下一行,则返回true
        } catch (SQLException e) {
            e.printStackTrace();
        }finally { //释放资源,把try里面的conn,stmt声明在外面等于null
            JDBCUTILS.close(rs,pstmt,conn);
        }
        return false;
    }
}

版权声明:本文为weixin_47243375原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。