使用JDBC進行後臺登入和註冊操作
阿新 • • 發佈:2019-02-12
更新內容:實現JDBC註冊和登入操作
工具:Myeclipse(eclipse)
知識點:執行緒(Thread)/連線池概念/IO流操作(Properties)
jar包
commons-collections4-4.0.jar
commons-dbcp-1.4.jar
commons-pool-1.6.jar
Oracle 11g 11.2.0.1.0 JDBC_ojdbc6.jar
下面的程式碼都是基於自己寫的已經分享過了連線池實現的
分析:
註冊操作:
1.實現使用者的註冊,
<>1首先可以想到使用者是否存在於已經被註冊過了.
所以應該先判斷使用者是否存在
<>2如果使用者存在提示使用者應該的操作
<>3如果不存在就註冊使用者
登入操作:
1實現使用者的登入
<>1使用者輸入資訊之後應該核對使用者的資訊.
<>2如果使用者的資訊不正確提示使用者
<>3正確登入使用者
這裡提到一個SQL注入攻擊的概念.是原來許多網站受到攻擊的原因
註冊具體操作:
步驟:
1使用者輸入資訊
2驗證使用者是否被註冊過
3.將資訊資訊儲存到資料庫使用者註冊成功
登入操作
步驟:
1使用者輸入資訊
2使用者輸入資訊是否正確
3將資訊提交資料庫是否正確驗證資訊
4使用者登入
package com.csdn.jdbcdemo.date2017_11_13; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; import com.csdn.jdbcdemo.date2017_11_12.BasicDataSourceDemo; public class UsernameDemo { @SuppressWarnings("resource") public static void main(String[] args) { System.out.println("1註冊 "); System.out.println("2登入 "); //捕獲使用者輸入選項 Scanner scanner = new Scanner(System.in); String next = scanner.next(); if(next.matches("[1-2]{1}")){ switch(Integer.parseInt(next)){ case 1: //註冊操作 regUser(scanner); break; case 2: //登入操作 login(scanner); break; } }else{ System.out.println("非法輸入"); } } //註冊 private static void regUser(Scanner scanner) { System.out.println("開始註冊操作:"); System.out.println("輸入使用者名稱:"); String username = scanner.next(); System.out.println("輸入密碼:"); String password = scanner.next(); try { //連線 Connection connection = BasicDataSourceDemo.getConnection(); //DB Statement state = connection.createStatement(); String sql = "SELECT * FROM " + "USER_INFODEMO " + "WHERE" + " Lower(USERNAME) = Lower('"+username+"')"; ResultSet rs = state.executeQuery(sql); if(rs.next()){ System.out.println("使用者已經存在了!"+username); }else{ String regSql = "INSERT INTO USER_INFODEMO " + "VALUES(" + "'"+username+"'," + "'"+password+"'" + ")"; if(state.executeUpdate(regSql)>0){ System.out.println("註冊成功!"); }else{ System.out.println("註冊失敗!"); } } } catch (SQLException e) { e.printStackTrace(); } } //登入 private static void login(Scanner scanner) { System.out.println("輸入使用者名稱:"); String username = scanner.next(); System.out.println("輸入密碼:"); String password = scanner.next(); //連線 Connection connection; try { connection = BasicDataSourceDemo.getConnection(); //DB Statement state = connection.createStatement(); //驗證輸入的資訊是否正確 String sql = "SELECT USERNAME,PASSWORD FROM USER_INFODEMO " + "WHERE " + "Lower(USERNAME) = Lower('"+username+"') " + "AND " + "PASSWORD = '"+password+"'"; if(state.executeQuery(sql).next()){ System.out.println("登入成功!"); }else{ System.out.println("賬號或者密碼錯誤!"); } } catch (SQLException e) { e.printStackTrace(); } } }