服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - JDBC工具类实现登录功能

JDBC工具类实现登录功能

2021-09-26 00:52跑起来要带风! Java教程

这篇文章主要为大家详细介绍了JDBC工具类实现登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

创建数据库,插入数据

?
1
2
3
4
5
6
7
8
9
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

?
1
2
3
4
url=jdbc:mysql://localhost:3306/student
username=root
password=root
driver=com.mysql.jdbc.driver

jdbc工具类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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();
            }
        }
    }
}

实现登录功能

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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工具类实现登录功能

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

原文链接:https://blog.csdn.net/weixin_44668898/article/details/107412660

延伸 · 阅读

精彩推荐