使用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();
		}
		
		
		
		
		
	}
}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章