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