欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JDBC工具类实现登录功能

程序员文章站 2022-03-08 18:53:09
本文实例为大家分享了jdbc工具类实现登录功能的具体代码,供大家参考,具体内容如下我们使用jdbc实现数据库的增删改查,代码基本差不多,有很多重复,所以我们可以把这些重复的代码写成一个工具类,使用的时...

本文实例为大家分享了jdbc工具类实现登录功能的具体代码,供大家参考,具体内容如下

我们使用jdbc实现数据库的增删改查,代码基本差不多,有很多重复,所以我们可以把这些重复的代码写成一个工具类,使用的时候直接调用就可以了。下面以实现登录功能的案例来介绍。

创建数据库,插入数据

use student;
create table user(
 id int primary key auto_increment,
    username varchar(32),
    password varchar(32)
);

insert into user values(null,'zhangsan','123');
insert into user values(null,'lisi','234');

jdbc.properties

url=jdbc:mysql://localhost:3306/student
username=root
password=root
driver=com.mysql.jdbc.driver

jdbc工具类

package cn.itcast.util;

import java.io.filereader;
import java.io.ioexception;
import java.net.url;
import java.sql.*;
import java.util.properties;

/**
 *   jdbc工具类
 **/
public class jdbcutils {
    private static string url;
    private static string username;
    private static string password;
    private static string driver;
    /**
     * 文件的读取,著需要读取一次即可拿到这些值,使用静态代码块
     **/
    static {

        try {
            //1、读取资源文件,获取值
            properties properties = new properties();

            //获取src路径下的文件的方式 ---> classloader类加载器
            classloader classloader = jdbcutils.class.getclassloader();
            url resource = classloader.getresource("jdbc.properties");
            string path = resource.getpath();

            //2、加载文件
            properties.load(new filereader(path));
            //3、获取数据,赋值
            url = properties.getproperty("url");
            username = properties.getproperty("username");
            password = properties.getproperty("password");
            driver = properties.getproperty("driver");
            //4、注册驱动
            class.forname(driver);
        } catch (ioexception e) {
            e.printstacktrace();
        } catch (classnotfoundexception e) {
            e.printstacktrace();
        }
    }


    /**
     * 获取连接
     * @return 连接对象
     */
    public static connection getconnection() throws sqlexception {
        return drivermanager.getconnection(url,username,password);
    }

    /**
     * 释放资源
     * @param statement
     * @param connection
     */
    public static void close(statement statement,connection connection) {
        if (statement != null) {
            try {
                statement.close();
            } catch (sqlexception e) {
                e.printstacktrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (sqlexception e) {
                e.printstacktrace();
            }
        }
    }

    /**
     * 释放资源
     * @param resultset
     * @param statement
     * @param connection
     */
    public static void close(resultset resultset,statement statement, connection connection) {
        if (resultset != null) {
            try {
                resultset.close();
            } catch (sqlexception e) {
                e.printstacktrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (sqlexception e) {
                e.printstacktrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (sqlexception e) {
                e.printstacktrace();
            }
        }
    }
}

实现登录功能

package cn.itcast.jdbc;

import cn.itcast.util.jdbcutils;

import java.sql.*;
import java.util.scanner;

/**
 *  1、通过键盘录入用户名和密码
 *  2、判断用户是否登录成功
 */
public class jdbclogin {

    public static void main(string[] args) {
        //1、键盘录入,接收用户和密码
        scanner sc = new scanner(system.in);
        system.out.println("请输入用户名:");
        string username = sc.nextline();
        system.out.println("请输入密码:");
        string password = sc.nextline();
        //2、调用方法
        boolean flag = new jdbclogin().login(username,password);
        //3、判断
        if (flag) {
            system.out.println("登录成功");
        } else {
            system.out.println("用户名或密码错误!");
        }
    }


    /**
     * 登录方法
     */

    public boolean login(string username,string password) {
        if (username == null || password == null) {
            return false;
        }
        //连接数据库判断是否登陆成功


        connection connection = null;
        preparedstatement preparedstatement = null;
        resultset resultset = null;
        try {
            //1、获取链接
            connection = jdbcutils.getconnection();
            //2、定义sql
            string sql = "select * from user where username = ? and password = ?";
            //3、获取执行sql的对象
            //为了防止sql注入,实现事务安全,效率更高,必须要用preparedstatement
            preparedstatement = connection.preparestatement(sql);
            //给?赋值
            preparedstatement.setstring(1,username);
            preparedstatement.setstring(2,password);
            //4、执行查询,不需要传递sql
            resultset = preparedstatement.executequery();
            //5、判断:如果是下一行,则返回true
            return resultset.next();
        } catch (sqlexception e) {
            e.printstacktrace();
        } finally {
            jdbcutils.close(resultset,preparedstatement,connection);
        }
        return false;
    }
}

运行结果:

JDBC工具类实现登录功能

JDBC工具类实现登录功能

JDBC工具类实现登录功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: JDBC 登录