Java學習:JDBC簡介

andy888發表於2019-08-22

Java 學習: JDBC 簡介
JDBC Java DataBase Connectivity,java 資料庫連線)是一種用於執行 SQL 語句的 Java API ,可以為多種關聯式資料庫提供統一訪問,它由一組用 Java 語言編寫的類和介面組成。 JDBC 提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式

Java 具有堅固、安全、易於使用、易於理解和可從網路上自動下載等特性,是編寫資料庫應用程式的傑出語言。所需要的只是 Java 應用程式與各種不同資料庫之間進行對話的方法。

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

JDBC 庫包括通常與資料庫使用相關的下面提到的每個任務的 API

 

JDBC 實現驗證登入  

-   建立Scanner 物件 提示並獲取獲取使用者輸入使用者名稱和密碼

-   連線資料庫。
- 把使用者輸入的使用者名稱和密碼當做查詢條件寫入 sql 語句
執行查詢 獲取查詢結果
- 根據查詢結果判定使用者輸入的賬號和密碼是否正確

驗證登入程式碼思路

 *  鍵盤輸入使用者名稱和密碼,對比資料庫中的使用者資訊,判斷是否登入成功
 *      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 密碼 s ansan o r ‘1’=’1

這樣的內容時 即便是錯誤的結果也會驗證透過 因為SQL 語句被編寫成了 select *  from userinfo where username=’’ and password=’’ or ‘1’=’1’;

這樣驗證的結果總是正確的 這種情況我們稱之為SQL 注入


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942977/viewspace-2654588/,如需轉載,請註明出處,否則將追究法律責任。

相關文章