Java學習:JDBC簡介
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java學習--JavaWeb簡介JavaWeb
- Java學習--Jsp簡介JavaJS
- JDBC 簡介JDBC
- [譯] RxJava JDBC 簡介RxJavaJDBC
- Java雲同桌學習系列(十六)——JDBCJavaJDBC
- 軟體測試學習教程——JDBC介紹JDBC
- JDBC學習JDBC
- Java安全之JDBC Attacks學習記錄JavaJDBC
- 強化學習-簡介強化學習
- CSS 學習一(簡介)CSS
- Ajax學習-Ajax簡介
- OpenCV學習之旅 簡介OpenCV
- 隨機學習簡介隨機
- JDBC學習1:詳解JDBC使用JDBC
- Unity學習系列一簡介Unity
- 元學習簡單介紹
- gcc簡介(學習筆記)GC筆記
- NIO學習一、NIO簡介
- perl DBI DBD和java 的JDBC對比學習JavaJDBC
- JDBC學習日記JDBC
- JDBC學習筆記JDBC筆記
- java實現簡單的JDBCJavaJDBC
- 菜鳥學Java(十六)——Jboss簡介Java
- Go語言學習(1) - 簡介Go
- Tensorflow 深度學習簡介(自用)深度學習
- 強化學習系列(1):簡介強化學習
- 如何學習javascript簡單介紹JavaScript
- 跟我學習dubbo-簡介(1)
- OCI學習筆記--簡介(一)筆記
- 貝葉斯深度學習簡介深度學習
- 深度學習基本概念簡介深度學習
- MuJoCo 學習筆記:簡介 Overview筆記View
- Java中的事件溯源簡介:包含學習進度的練習工具包Java事件
- JAVA簡介Java
- JDBC學習筆記-----jdbc效能最佳化 (轉)JDBC筆記
- python基礎學習-socket簡介Python
- 3、Ktor學習-ApplicationCall簡介;APP
- uiautomator學習筆記(一)簡介UI筆記