实现简易的登陆注册功能(Java连接Mysql数据库)

前言

本篇文章为大家分析如何用JDBC连接Mysql数据库,从而来实现简易的登陆注册功能

代码

1、效果演示

让我们先来看看代码运行结果:

登陆成功效果
实现简易的登陆注册功能(Java连接Mysql数据库)_第1张图片
登录失败效果
实现简易的登陆注册功能(Java连接Mysql数据库)_第2张图片
注册效果
实现简易的登陆注册功能(Java连接Mysql数据库)_第3张图片

2、代码解析

登录要求

1、实现Java和Mysql的连接
2、数据库内存在用户信息
3、通过指定用户名和密码来判断用户是否存在
4、将结果输出在控制台

注册要求

在符合登陆要求的基础上还要符合以下要求
1、判断用户名是否已在数据库中存在
2、在数据库中新增注册用户

3、主要代码

以下内容为代码的各部分内容

数据库

实现简易的登陆注册功能(Java连接Mysql数据库)_第4张图片

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=jdbc:mysql://localhost:3306/test1?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;

public class jdbc_test {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {    //输入psvm 或者 main后回车
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = sc.nextLine();
        System.out.println("请输入密码:");
        String password = sc.nextLine();
        //调用方法
//        boolean flag = new jdbc_test().login(username,password);
//        if(flag){
//            System.out.print("登陆成功!");
//        }else {
//            System.out.print("登陆失败!");
//        }
        boolean flag = new jdbc_test().register(username, password);
        while(!flag) {
            System.out.print("注册失败,请重新输入用户名:");
            username = sc.next();
            System.out.print("请输入你的密码:");
            password = sc.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;
    }
}

ps:本代码所演示的是注册功能,注释部分为登录功能

以上就是代码的所有内容

知识总结

1、掌握运用JDBCUtils类,该类用于创建JDBC连接数据库
2、JDBC.properties文件,主要用于存放数据库路径,以及数据库内的数据信息;
3、学会调用数据库,用来判断指定数据是否存在与数据库中
4、学会在Java中新增数据库内容

你可能感兴趣的:(数据库,mysql,java,jdbc)