希望所有來參閱的學者給我點贊,希望我的簡單程序,能對你有所幫助!
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;
}
}
}