Java连接Mysql数据库,实现初始登录注册

作者想说的话

本篇作品为自己为了学业所做作业,若有问题,可私聊讨论。如果有帮助到你,一起加油。

代码要求描述

登录要求:
1、要求实现Java连接Mysql数据库
2、通过查询指定用户名、密码来确认用户是否存在
3、输出给Java后台
4、判断是否登录成功
5、界面输出

注册要求:
1、要求实现Java连接Mysql数据库
2、通过查询指定用户名来确认用户是否存在
3、如若指定用户存在,则拒绝注册
4、通过SQL语句向数据库新建一条数据
5、判断是否注册成功
6、界面输出

涉及类的主要作用描述

1、JDBCUtils类,主要用于创建JDBC连接数据库,内含连接数据库方法(getCounection),关闭连接方法(close);
2、JDBC.properties文件,主要用于存放数据库路径,管理员用户名、密码以及Driver框架包;
3、jdbc_test类,主要用处就是测试程序,内包含login登录方法,register注册方法;
4、数据库内容:其中id列自动递增
在这里插入图片描述

#JDBCUtils类

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    private static String url;
    private static String user;
    private static String psssword;
    private static String driver;

    //读取文件,只需读取一次即可拿到这些值,使用静态代码块
    static {
        try {
            //1.创建Properties集合类
            Properties pro=new Properties();
            //获取src路径下文件————>ClassLoader 类加载器
            ClassLoader classLoader=JDBCUtils.class.getClassLoader();
            URL res=classLoader.getResource("jdbc.properties");
            String path = res.getPath();
            System.out.println(path);

            //2.加载文件
            pro.load(new FileReader(path));

            //3.获取数据,赋值
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            psssword = pro.getProperty("password");
            driver = pro.getProperty("driver");

            //4.注册驱动
            Class.forName(driver);


        }catch (IOException e){
            e.printStackTrace();
        }catch (ClassNotFoundException e1){
            e1.printStackTrace();
        }
    }

    //连接
    public static Connection getCounection() throws SQLException{
        return DriverManager.getConnection(url,user,psssword);
    }

    //释放资源
    public static void close(ResultSet rs,Statement stmt,Connection conn) throws SQLException{  //ResultSet 结果集
        if(rs != null){
            rs.close();
            stmt.close();
        }
        if (stmt != null){
            stmt.close();
        }
        if(conn != null){
            conn.close();
        }
    }

    public static void close(Statement stmt,Connection conn) throws SQLException{
        if (stmt != null){
            stmt.close();
        }
        if(conn != null){
            conn.close();
        }
    }
}

#JDBC.properties文件

#url:数据库路径,其中abc为我所调用的数据库名,大家可自行修改
url = jdbc:mysql://localhost:3306/abc?useSSL=false
user = root
password = 123456
driver = com.mysql.jdbc.Driver

#jdbc_test类

import java.sql.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

/**
 * @Title: jdbc_test
 * @Project UI_Project
 * @Date 2020/6/28 9:24
 */
public class jdbc_test {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入你的用户名:");
        String username = scanner.next();
        System.out.print("请输入你的密码:");
        String password = scanner.next();

        boolean flag = new jdbc_test().register(username, password);
        while(!flag) {
            System.out.print("注册失败,请重新输入用户名:");
            username = scanner.next();
            System.out.print("请输入你的密码:");
            password = scanner.next();
            flag = new jdbc_test().register(username, password);
        }
        System.out.println("注册成功");
    }

    //登录方法
    public boolean login(String username,String password) throws SQLException {
        if (username == null || password == null) {
            return false;
        }
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getCounection();
            //定义sql
            String sql = "select * from user where name='" + username + "' and password ='" + password + "' ";
            //获取执行sql对象
            stmt = conn.createStatement();
            //执行查询
            rs = stmt.executeQuery(sql);

            return rs.next();

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(rs, stmt, conn);
        }
        return false;
    }

    //注册方法
    public boolean register(String username,String password) throws SQLException {
        if (username == null || password == null) {
            return false;
        }
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            conn = JDBCUtils.getCounection();
            //定义sql
            String sql = "select * from user where name='" + username + "'";
            //获取执行sql对象
            stmt = conn.createStatement();
            //执行查询
            rs = stmt.executeQuery(sql);
            if (rs.next()) return false;     //因为查询到此账户,所以拒绝注册
            //定义sql
            sql = "INSERT into user(name,password) value ('" + username + "','" + password + "')";
            //执行查询
            int count = stmt.executeUpdate(sql);
            return count != 0;

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(rs, stmt, conn);
        }
        return false;


    }

}

运行结果

本运行结果为使用了注册方法,其中第一次注册失败是因为数据库中已经存在用户名为zzev的用户,所以拒绝注册。
在这里插入图片描述


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