好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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 ;

     }

}

运行结果:

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

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

查看更多关于JDBC工具类实现登录功能的详细内容...

  阅读:16次