java+mysql的简单登录验证及一些小功能

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 最近两天在学习java数据库,便写了这个示例,以后再加入界面吧。
package shujukv.nn;
/*
 * java简单数据库验证登录及小功能
 */
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Test1 {
  static Connection con;
  static Scanner p1=new Scanner(System.in);
  static String url="jdbc:mysql://localhost:3306/userdemo2";        //相当于路径
  static String username="root";                      //登录名 
  static String password="1998";
  static PreparedStatement p;
  static ResultSet res;
  static String sql;
  static Scanner n=new Scanner(System.in);
  static int i=0;
  public  static Connection getConnection() {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      System.out.println("数据库正在连接");
    }catch(Exception e) {
      e.printStackTrace();
    }
    try {
//      for(int i=0;i<6;i++)
//      {
//        Thread.sleep(600);
//        System.out.print("#  ");
//      }
      System.out.println();
      con=DriverManager.getConnection(url, username, password);
      System.out.println("数据库连接成功");
    } catch (Exception e) {
      e.printStackTrace();
    }
    return con;
  }
  //main函数
  public static void main(String[] args) throws Exception {
    getConnection();
    int m=0;
    while(m!=5) {
      System.out.println("欢迎使用T.T租机!");
      System.out.println("1.注册账户");
      System.out.println("2.登录系统");
      System.out.println("3.管理员登录");
      System.out.println("4.找回密码");
      System.out.println("5.退出");
      System.out.println("请输入数字选择功能");
      m=n.nextInt();
      switch(m) {
      case 1:zhuce();break;
      case 2:denglu();break;
      case 3:guanliyuan();break;
      case 4:mhchaxun();break;
      case 5:break;
    }
  }
  }
  //登录
public static void denglu() throws SQLException {
    System.out.println("请输入你的账号:");
    String a=n.next();
    System.out.println("请输入你的密码:");
    String b=n.next();
       sql = "select username,password from user where username=? and password=?";      //预处理
       p=con.prepareStatement(sql);       //标记
       p.setString(1, a);
       p.setString(2, b);
       res=p.executeQuery();
    if(res.next()) {
      System.out.println("登陆成功");
    }
    else {
      i++;
      if(i==3) {
        Break(i);
      }
      System.out.println("登录失败,请重新登录!");
      denglu();
      }
    } 
public static  void guanliyuan() throws SQLException {
  System.out.println("请输入你的admin账号:");
  String a=n.next();
  System.out.println("请输入你的admin密码:");
  String b=n.next();
       sql = "select username,password from useradmin where username=? and password=?";     //预处理
       p=con.prepareStatement(sql);       //标记
       p.setString(1, a);
       p.setString(2, b);
       res=p.executeQuery();
    if(res.next()) {
      System.out.println("登陆成功");
    }
    else {
      i++;
      if(i==3) {
        Break(i);
      }
      System.out.println("登录失败,请重新登录!");
      denglu();
      }
    } 
  //注册
  public static void zhuce()throws SQLException, InterruptedException {
    System.out.println("请输入你的新账号:");
    String a=n.next();
    sql="select username from user where username=?";   //预处理验证
    p=con.prepareStatement(sql);
    p=con.prepareStatement(sql);
    p.setString(1, a);
    res=p.executeQuery();
  if(res.next()) {
    System.out.println("此账号已注册,请重新输入");
    zhuce();
  }
  else {
    int k=0;
    while(k==0){
    System.out.println("请输入你的登录密码");
    String b=n.next();
    System.out.println("请再次输入你的确认密码");
    String b22=n.next();
    if(b.equals(b22)) {
      //判断两次输入的密码是否相同
      System.out.println("请输入你找回密码的问题:");
      String b3=n.next();
      System.out.println("请输入问题的答案:");
      String b33=n.next();
      String sql2="insert into user(username,password,userwt,userda) values(?,?,?,?)";
      java.sql.PreparedStatement res3=con.prepareStatement(sql2);
      res3.setString(1, a);
      res3.setString(2, b);
      res3.setString(3, b3);
      res3.setString(4, b33);
      res3.execute();
      System.out.println("注册成功!");
      k=1;
      System.out.println("你的账号为:"+a);
      System.out.println("你的密码为:"+b);
    }
    else {
      System.out.println("两次输入的密码不一致,请重新输入");
    }
    }
  }
}
  //找密码
  //预设问题提示回答验证
  //根据账号 模糊查询
  public static void mhchaxun() throws Exception {
    System.out.println("请输入你的账号:");
    String k=p1.next();
  sql="select * from user where username=?";
  p=con.prepareStatement(sql);
  p.setString(1, k);
  res=p.executeQuery();
  if(res.next()) {
    System.out.println(res.getString(4));
    Thread.sleep(500);
    System.out.println("请输入你的问题答案");
    chazhao(k);
  }
  else {
    mhchaxun();
  }
  }
  //根据问题查找
  public static void chazhao(String kk) throws Exception  {
    String k=p1.next();
  p=con.prepareStatement("select * from user where userda=? and username=?");
  p.setString(1, k);
  p.setString(2, kk);
  res=p.executeQuery();
  if(res.next()) {
    System.out.println("核对正确,请输入新密码:");
    String k1=n.next();
    xgpassword(k1,kk);
  }else {
      ++i;
      if(i==3) {
        Break(i);
      }
      System.out.println("答案错误!,请重新输入");
      chazhao(kk);
    }
  }
    //强行退出提醒
  public static void Break(int a) {
      System.out.println("你已错误3次,已强行退出");
      System.exit(0);
    }
  //修改密码
  public static void xgpassword(String k1,String K2) throws Exception {
    sql="update user set password=? where username=?";
    p=con.prepareStatement(sql);
    p.setString(1, k1);
    p.setString(2, K2);
    p.executeUpdate();
    System.out.println("修改成功,即将返回登录界面————");
    Thread.sleep(1000);
  }
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
存储 Java 关系型数据库
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
个人成绩信息管理系统【GUI/Swing+MySQL】(Java课设)
20 0
|
25天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
25 1
|
1天前
|
Java API
java流式实现chatGPT会话功能
java流式实现chatGPT会话功能
7 1
|
8天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
16天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
14 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
23天前
|
JavaScript Java 关系型数据库
基于 java + Springboot + vue +mysql 大学生实习管理系统(含源码)
本文档介绍了基于Springboot的实习管理系统的设计与实现。系统采用B/S架构,旨在解决实习管理中的人工管理问题,提高效率。系统特点包括对用户输入的验证和数据安全性保障。功能涵盖首页、个人中心、班级管理、学生管理、教师管理、实习单位管理、实习作业管理、教师评分管理、单位成绩管理和系统管理等。用户分为管理员、教师和学生,各自有不同的操作权限。
|
Java 测试技术 API
Java 18 新功能介绍
Java 18 新功能介绍
254 0
Java 18 新功能介绍
|
安全 算法 Java
Java 17 新功能介绍(LTS)
Java 17 新功能介绍(LTS)
610 0
Java 17 新功能介绍(LTS)
|
JavaScript 前端开发 算法
超详细 Java 15 新功能介绍
超详细 Java 15 新功能介绍
130 0
超详细 Java 15 新功能介绍
|
Java Unix Linux
Java 14 新功能介绍
Java 14 新功能介绍
166 0
Java 14 新功能介绍