好程序員Java學習路線分享JDBC初體驗,JDBC(Java DataBase Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序
-?Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數據庫之間進行對話的方法。
-?JDBC可以在各種平臺上使用Java,如Windows,Mac OS和各種版本的UNIX。
-?JDBC庫包括通常與數據庫使用相關的下面提到的每個任務的API。
JDBC實現驗證登錄?
-?創建Scanner對象,提示并獲取獲取用戶輸入用戶名和密碼
-?連接數據庫。
驗證登錄代碼思路
??鍵盤輸入用戶名和密碼,對比數據庫中的用戶信息,判斷是否登錄成功
??????1、連接數據庫
?*?????????MyJDBCUtils.getConnection()
?*?????2、獲取請求對象stmt
?*?????????conn.createStmtement()
*?????3、創建鍵盤對象,獲取用戶名和密碼
*?????????3.1????創建鍵盤錄入對象
*?????????3.2????提示用戶輸入
*?????????3.3????獲取用戶輸入內容
*?????4、編寫SQL語句,把用戶名和密碼放入SQL語句中
*?????5、執行查詢,獲取查詢結果
*?????????stmt.executeQuery(sql);
?????6、根據查詢結果判斷登錄是否成功
?????7、關閉連接
JDBC實現登錄驗證案例代碼
package com.qf.demos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class Demo05 {
????public static void main(String[] args) throws SQLException {
????????String url = "jdbc:mysql://localhost:3306/class";
????????String user = "root";
????????String password = "root";
????????Connection conn = DriverManager.getConnection(url, user, password);
????????Statement stmt = conn.createStatement();
????????
????????Scanner sc = new Scanner(System.in);
????????System.out.println("請輸入用戶名:");
????????String name = sc.nextLine();
????????
????????System.out.println("請輸入密碼:");
????????String pwd = sc.nextLine();
????????
????????String sql = "select * from user where username='" + name + "' and password='" + pwd + "'";
????????// String sql = "select * from user where username='zhangsan' and password='lisi' or '1'='1'";
????????ResultSet resultSet = stmt.executeQuery(sql);
????????System.out.println(resultSet);
????????
????????if (resultSet.next()) {
????????????System.out.println("登錄成功!");
????????} else {
????????????System.out.println("用戶名或密碼!");
????????}
????????resultSet.close();
????????stmt.close();
????????conn.close();
????????sc.close();
????}
}
運行代碼后我們正常輸入類似:
用戶名:zhangsan ???密碼:sanzhang
這樣的用戶名和密碼,獲取到的內容可以和數據庫中的內容對比,得到對應的結果
如果有用戶輸入類似:
用戶名:zhangsan 密碼:sansan’or ‘1’=’1
這樣的內容時,即便是錯誤的結果也會驗證通過,因為SQL語句被編寫成了:select *?from userinfo where username=’’ and password=’’ or ‘1’=’1’;
這樣驗證的結果總是正確的,這種情況我們稱之為SQL注入
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。