溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用JDBC實現(xiàn)驗證登錄

發(fā)布時間:2021-12-22 14:18:45 來源:億速云 閱讀:267 作者:iii 欄目:編程語言

這篇文章主要介紹“如何用JDBC實現(xiàn)驗證登錄”,在日常操作中,相信很多人在如何用JDBC實現(xiàn)驗證登錄問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何用JDBC實現(xiàn)驗證登錄”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習吧!

  JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序

- Java 具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。

- JDBC可以在各種平臺上使用Java,如Windows,Mac OS和各種版本的UNIX。

- JDBC庫包括通常與數(shù)據(jù)庫使用相關(guān)的下面提到的每個任務(wù)的API。

lJDBC實現(xiàn)驗證登錄代碼思路

* 鍵盤輸入用戶名和密碼,對比數(shù)據(jù)庫中的用戶信息,判斷是否登錄成功

*     1、連接數(shù)據(jù)庫

*         MyJDBCUtils.getConnection()

*     2、獲取請求對象stmt

*         conn.createStmtement()

*     3、創(chuàng)建鍵盤對象,獲取用戶名和密碼

*         3.1    創(chuàng)建鍵盤錄入對象

*         3.2    提示用戶輸入

*         3.3    獲取用戶輸入內(nèi)容

*     4、編寫SQL語句,把用戶名和密碼放入SQL語句中

*     5、執(zhí)行查詢,獲取查詢結(jié)果

*         stmt.executeQuery(sql);

*     6、根據(jù)查詢結(jié)果判斷登錄是否成功

*     7、關(guān)閉連接

lJava工具類

在java開發(fā)過程中,代碼中時常用到一些Scanner、Random一樣的類,他們是鍵盤錄入,生成隨機數(shù)的類,像一個工具一樣,在java中被稱為工具類。

        我們在編寫自己的代碼時,有的代碼功能和java工具類似,比如連接數(shù)據(jù)庫、驗證登錄,時長會用得到,每次都書寫一次太麻煩,我們可以嘗試編寫自己的工具類,每次用到的時候直接導(dǎo)包調(diào)用就行,能提高我們的開發(fā)效率。

l封裝JDBC工具類

n加入獲取數(shù)據(jù)庫連接對象的方法

n加入釋放連接的方法

代碼如下:

工具類代碼:

package com.qianfeng.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

* JDBC工具類

* 有獲取連接的方法

* @author dushine

*/

public class JDBCUtil {

        /**

        * 獲取數(shù)據(jù)庫連接的方法

        * @return Connection conn

        * @throws SQLException

        */

        public static Connection getConnection() throws SQLException {

                String url = "jdbc:mysql://localhost:3306/class?useSSL=false";

                String user = "root";

                String password = "root";

                Connection conn = DriverManager.getConnection(url,user,password);

                return conn;

        }

        /**

        * 釋放連接的方法

        * @param conn

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn) throws SQLException {

                if (conn != null) {

                        conn.close();

                }

        }

        /**

        * 釋放連接的方法

        * @param conn                數(shù)據(jù)庫連接對象

        * @param stmt                執(zhí)行SQL語句的對象

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn,Statement stmt) throws SQLException {

                if (stmt != null) {

                        stmt.close();

                }

                if (conn != null) {

                        conn.close();

                }

        }

        /**

        * 釋放連接的方法

        * @param conn                數(shù)據(jù)庫連接對象

        * @param stmt                執(zhí)行SQL語句的對象

        * @param resultSet        執(zhí)行SQL語句的返回的結(jié)果集

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn,Statement stmt,ResultSet resultSet) throws SQLException {

                if (resultSet != null) {

                        resultSet.close();

                }

                if (stmt != null) {

                        stmt.close();

                }

                if (conn != null) {

                        conn.close();

                }

        }

}

測試類代碼:

package com.qianfeng.demos;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Scanner;

import com.qianfeng.util.JDBCUtil;

public class Demo04 {

        public static void main(String[] args) throws Exception {

                /**

                * 登錄注冊

                *         獲取用戶輸入內(nèi)容

                *         把輸入的內(nèi)容當做條件查詢數(shù)據(jù)庫中的內(nèi)容

                */

                Scanner sc = new Scanner(System.in);

                System.out.println("請輸入用戶名:");

                String name = sc.nextLine();

                System.out.println("請輸入密碼:");

                String pwd = sc.nextLine();

                // 注冊驅(qū)動

                Class.forName("com.mysql.jdbc.Driver");

                /*

                String url = "jdbc:mysql://localhost:3306/class?useSSL=false";

                String user = "root";

                String password = "root";

                // 獲取和數(shù)據(jù)庫的連接

                Connection conn = DriverManager.getConnection(url, user, password);*/

                Connection conn = JDBCUtil.getConnection();

                // 使用連接對象獲取執(zhí)行sql的對象

                Statement stmt = conn.createStatement();

                // 編寫SQL語句

                String sql = "select * from userinfo where username='"+name+"' and password='"+pwd+"'";

                System.out.println(sql);

                // 執(zhí)行SQL語句,獲取返回結(jié)果

                ResultSet resultSet = stmt.executeQuery(sql);

                if (resultSet.next()) {

                        System.out.println("登陸成功!");

                } else {

                        System.out.println("用戶名或密碼錯誤!");

                }

                JDBCUtil.releaseSourse(conn, stmt, resultSet);

                sc.close();

        }

}

到此,關(guān)于“如何用JDBC實現(xiàn)驗證登錄”的學(xué)習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習,快去試試吧!若想繼續(xù)學(xué)習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI