使用JDBC做一個簡單的登錄,註冊頁面!

希望所有來參閱的學者給我點贊,希望我的簡單程序,能對你有所幫助!

1、首先設計一個用戶類

public class User {  //用戶類 
private int id=0;
private String  username=null;
private String userpassword=null;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return userpassword;
}
public void setPassword(String userpassword) {
this.userpassword = userpassword;
}
}


2、把jdbc對數據庫的連接設置爲工廠類,方便調用,是代碼變得更加簡潔

public class factory {


private static final String URL="jdbc:mysql://localhost:3307/sram";
private static final String USER="root"; 
private static final String PASSWORD="root";
private static final String DBCLASSNAME="com.mysql.jdbc.Driver";

//創建Connection對象
private static Connection conn;

public static Connection getConnection(){
try {
Class.forName(DBCLASSNAME);
conn = DriverManager.getConnection(URL,USER,PASSWORD);
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}


public static void closeConnection(){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

3、創建一個用戶登錄的輸入類

import java.util.Scanner;

public class Login {
public static User getuser(){   //登錄
User u = new User();
Scanner scan = new Scanner(System.in);
System.out.println("請輸入用戶名:");
u.setUsername(scan.next());
System.out.println("請輸入密碼:");
u.setPassword(scan.next());
return u;
}
}

4、創建一個用戶註冊的輸入類

import java.util.Scanner;

public class Register {
public static User Register(){
User u = new User();
Scanner scan =  new Scanner(System.in);
System.out.println("請註冊用戶名:");
u.setUsername(scan.next());
System.out.println("請輸入密碼:");
u.setPassword(scan.next());
return u;
}
}


5、設計一個登錄的類,此類判斷用戶名密碼是否正確

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;


import com.sram.連接工廠.factory;


public class CheckLogin {  


//判斷登錄
public static void CheckUser(User u){
PreparedStatement ps = null;
ResultSet rs = null;
try {
String sql = "select * from Userinfo where username = ? and userpassword = ?";
ps = factory.getConnection().prepareStatement(sql);
ps.setString(1, u.getUsername());
ps.setString(2, u.getPassword());
rs = ps.executeQuery();
if(rs.next()){
System.out.println("登錄成功");
}else{

System.out.println("登錄失敗");
}
} catch (SQLException e) {e.printStackTrace();}finally{
try {
ps.close();
rs.close();
factory.closeConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

6、創建註冊類,如果數據庫中有這個用戶名,就不能註冊

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


import com.sram.連接工廠.factory;


public class CheckRegister {
public static void RegisterUser(User u){
String sqlfrom = "insert into Userinfo (username,userpassword) values (?,?)";
String sqlto = "select * from Userinfo";
ResultSet rs = null;
PreparedStatement ps = null;
try {

Statement s = factory.getConnection().createStatement();
rs = s.executeQuery(sqlto);

ps = factory.getConnection().prepareStatement(sqlfrom);
ps.setString(1, u.getUsername());
ps.setString(2, u.getPassword());
while(rs.next()){
if(rs.getString("username").equals(u.getUsername())){
System.out.println("註冊名存在");
}else{
ps.executeUpdate();
System.out.println("註冊成功");
}
}

} catch (SQLException e) {
e.printStackTrace();

}finally{
try {
rs.close();
ps.close();
factory.closeConnection();
} catch (SQLException e) {
e.printStackTrace();
}

}
}
}


7、創建一個主函數的測試類  

import java.util.Scanner;

public class Test_Main {

public static void main(String[] args) {
int i = 0;
Scanner scan = new Scanner(System.in);
System.out.println("\t\t登陸請按1\t\t註冊請按2");
i = scan.nextInt();
switch(i){
case 1 :CheckLogin.CheckUser(Login.getuser());
break;
case 2 :CheckRegister.RegisterUser(Register.Register());
break;
default :System.out.println("請輸入正確的選擇"); break;
}
}
}

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