使用jdbc完善注册登录
时间: 2023-07-25 16:27:07 浏览: 41
好的,下面是使用 JDBC 实现注册和登录的示例代码:
```java
import java.sql.*;
public class UserDAO {
private Connection connection;
private PreparedStatement stmt;
public UserDAO() {
// 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 注册新用户
* @param username 用户名
* @param password 密码
* @return 注册是否成功
*/
public boolean register(String username, String password) {
try {
// 检查用户名是否已存在
stmt = connection.prepareStatement("SELECT COUNT(*) FROM users WHERE username = ?");
stmt.setString(1, username);
ResultSet rs = stmt.executeQuery();
rs.next();
if (rs.getInt(1) > 0) {
System.out.println("用户名已存在");
return false;
}
// 插入新用户信息
stmt = connection.prepareStatement("INSERT INTO users(username, password) VALUES (?, ?)");
stmt.setString(1, username);
stmt.setString(2, password);
stmt.executeUpdate();
System.out.println("注册成功");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 用户登录
* @param username 用户名
* @param password 密码
* @return 登录是否成功
*/
public boolean login(String username, String password) {
try {
// 检查用户名和密码是否匹配
stmt = connection.prepareStatement("SELECT COUNT(*) FROM users WHERE username = ? AND password = ?");
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
rs.next();
if (rs.getInt(1) == 0) {
System.out.println("用户名或密码错误");
return false;
}
System.out.println("登录成功");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
UserDAO dao = new UserDAO();
dao.register("user1", "password1");
dao.register("user2", "password2");
dao.login("user1", "password1");
dao.login("user2", "password3");
}
}
```
在代码中,我们使用了 MySQL 数据库,用户名和密码保存在名为 `users` 的表中。在构造函数中,我们建立了与数据库的连接。在 `register` 方法中,我们首先检查用户名是否已存在,如果已存在,则返回注册失败。否则,我们将用户名和密码插入到表中。在 `login` 方法中,我们检查用户名和密码是否匹配,如果匹配,则返回登录成功。否则,返回登录失败。
在主函数中,我们简单地测试了注册和登录功能。您可以根据需要修改代码中的数据库连接信息和表结构。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)