希望所有来参阅的学者给我点赞,希望我的简单程序,能对你有所帮助!
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;
}
}
}