用java代码写登录注册
时间: 2023-08-04 13:14:06 浏览: 45
登录注册功能一般需要与数据库进行交互,这里提供一份简单的示例代码,使用了JDBC连接MySQL数据库实现了登录注册功能。
1. 首先需要在MySQL中创建一个名为“user”的表,包含id、username、password三个字段,其中id为自增长主键。
```
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
```
2. 编写Java代码实现登录、注册功能。具体代码如下:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class LoginRegisterDemo {
// JDBC连接的URL,其中student为数据库名
private static final String URL = "jdbc:mysql://localhost:3306/student?useSSL=false";
// JDBC连接的用户名
private static final String USER = "root";
// JDBC连接的密码
private static final String PASSWORD = "root";
// JDBC连接的驱动程序类名
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择操作:\n1.登录\n2.注册");
int choice = scanner.nextInt();
switch (choice) {
case 1:
login();
break;
case 2:
register();
break;
default:
System.out.println("输入错误!");
break;
}
scanner.close();
}
// 登录
private static void login() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 加载驱动程序类
Class.forName(DRIVER_CLASS);
// 获取数据库连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
// 构造SQL语句
String sql = "SELECT * FROM user WHERE username=? AND password=?";
// 创建PreparedStatement对象
ps = conn.prepareStatement(sql);
// 设置参数
ps.setString(1, username);
ps.setString(2, password);
// 执行查询
rs = ps.executeQuery();
// 处理查询结果
if (rs.next()) {
System.out.println("登录成功!");
} else {
System.out.println("登录失败,用户名或密码错误!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
scanner.close();
}
}
// 注册
private static void register() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
Connection conn = null;
PreparedStatement ps = null;
try {
// 加载驱动程序类
Class.forName(DRIVER_CLASS);
// 获取数据库连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
// 构造SQL语句
String sql = "INSERT INTO user (username, password) VALUES (?, ?)";
// 创建PreparedStatement对象
ps = conn.prepareStatement(sql);
// 设置参数
ps.setString(1, username);
ps.setString(2, password);
// 执行插入
int count = ps.executeUpdate();
// 处理插入结果
if (count > 0) {
System.out.println("注册成功!");
} else {
System.out.println("注册失败!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
scanner.close();
}
}
}
```
以上代码仅作示例,实际使用时需要根据具体需求进行修改和完善。