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

  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值