本文实例为大家分享了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;
    }
}

运行结果:

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