這篇文章主要介紹“如何用JDBC實(shí)現(xiàn)驗(yàn)證登錄”,在日常操作中,相信很多人在如何用JDBC實(shí)現(xiàn)驗(yàn)證登錄問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何用JDBC實(shí)現(xiàn)驗(yàn)證登錄”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)自2013年起,先為鶴山等服務(wù)建站,鶴山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鶴山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠編寫數(shù)據(jù)庫(kù)應(yīng)用程序
- Java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。
- JDBC可以在各種平臺(tái)上使用Java,如Windows,Mac OS和各種版本的UNIX。
- JDBC庫(kù)包括通常與數(shù)據(jù)庫(kù)使用相關(guān)的下面提到的每個(gè)任務(wù)的API。
lJDBC實(shí)現(xiàn)驗(yàn)證登錄代碼思路
* 鍵盤輸入用戶名和密碼,對(duì)比數(shù)據(jù)庫(kù)中的用戶信息,判斷是否登錄成功
* 1、連接數(shù)據(jù)庫(kù)
* MyJDBCUtils.getConnection()
* 2、獲取請(qǐng)求對(duì)象stmt
* conn.createStmtement()
* 3、創(chuàng)建鍵盤對(duì)象,獲取用戶名和密碼
* 3.1 創(chuàng)建鍵盤錄入對(duì)象
* 3.2 提示用戶輸入
* 3.3 獲取用戶輸入內(nèi)容
* 4、編寫SQL語(yǔ)句,把用戶名和密碼放入SQL語(yǔ)句中
* 5、執(zhí)行查詢,獲取查詢結(jié)果
* stmt.executeQuery(sql);
* 6、根據(jù)查詢結(jié)果判斷登錄是否成功
* 7、關(guān)閉連接
lJava工具類
在java開發(fā)過(guò)程中,代碼中時(shí)常用到一些Scanner、Random一樣的類,他們是鍵盤錄入,生成隨機(jī)數(shù)的類,像一個(gè)工具一樣,在java中被稱為工具類。
我們?cè)诰帉懽约旱拇a時(shí),有的代碼功能和java工具類似,比如連接數(shù)據(jù)庫(kù)、驗(yàn)證登錄,時(shí)長(zhǎng)會(huì)用得到,每次都書寫一次太麻煩,我們可以嘗試編寫自己的工具類,每次用到的時(shí)候直接導(dǎo)包調(diào)用就行,能提高我們的開發(fā)效率。
l封裝JDBC工具類
n加入獲取數(shù)據(jù)庫(kù)連接對(duì)象的方法
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ù)庫(kù)連接的方法
* @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ù)庫(kù)連接對(duì)象
* @param stmt 執(zhí)行SQL語(yǔ)句的對(duì)象
* @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ù)庫(kù)連接對(duì)象
* @param stmt 執(zhí)行SQL語(yǔ)句的對(duì)象
* @param resultSet 執(zhí)行SQL語(yǔ)句的返回的結(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();
}
}
}
測(cè)試類代碼:
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 {
/**
* 登錄注冊(cè)
* 獲取用戶輸入內(nèi)容
* 把輸入的內(nèi)容當(dāng)做條件查詢數(shù)據(jù)庫(kù)中的內(nèi)容
*/
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入用戶名:");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入密碼:");
String pwd = sc.nextLine();
// 注冊(cè)驅(qū)動(dòng)
Class.forName("com.mysql.jdbc.Driver");
/*
String url = "jdbc:mysql://localhost:3306/class?useSSL=false";
String user = "root";
String password = "root";
// 獲取和數(shù)據(jù)庫(kù)的連接
Connection conn = DriverManager.getConnection(url, user, password);*/
Connection conn = JDBCUtil.getConnection();
// 使用連接對(duì)象獲取執(zhí)行sql的對(duì)象
Statement stmt = conn.createStatement();
// 編寫SQL語(yǔ)句
String sql = "select * from userinfo where username='"+name+"' and password='"+pwd+"'";
System.out.println(sql);
// 執(zhí)行SQL語(yǔ)句,獲取返回結(jié)果
ResultSet resultSet = stmt.executeQuery(sql);
if (resultSet.next()) {
System.out.println("登陸成功!");
} else {
System.out.println("用戶名或密碼錯(cuò)誤!");
}
JDBCUtil.releaseSourse(conn, stmt, resultSet);
sc.close();
}
}
到此,關(guān)于“如何用JDBC實(shí)現(xiàn)驗(yàn)證登錄”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!