1. 程式人生 > >使用JDBC進行後臺登入和註冊操作

使用JDBC進行後臺登入和註冊操作


更新內容:實現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();
		}
		
		
		
		
		
	}
}