javaweb分层实现注册功能案例
时间: 2023-12-16 19:03:54 浏览: 38
好的,下面是一个简单的 JavaWeb 分层实现注册功能的案例:
首先,我们需要创建一个 User 实体类,保存用户信息:
```java
public class User {
private int id;
private String username;
private String password;
private String email;
// 省略 getter 和 setter 方法
}
```
接着,我们创建一个 UserDao 接口,定义增删改查等操作:
```java
public interface UserDao {
// 添加用户
void addUser(User user) throws SQLException;
// 根据用户名查找用户
User findUserByUsername(String username) throws SQLException;
// 根据邮箱查找用户
User findUserByEmail(String email) throws SQLException;
}
```
然后,我们创建一个 UserDaoImpl 类,实现 UserDao 接口,实现具体的操作:
```java
public class UserDaoImpl implements UserDao {
// 获取数据库连接
private Connection getConnection() throws SQLException {
// ...
}
@Override
public void addUser(User user) throws SQLException {
String sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getEmail());
pstmt.executeUpdate();
}
}
@Override
public User findUserByUsername(String username) throws SQLException {
String sql = "SELECT * FROM users WHERE username = ?";
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, username);
try (ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
return user;
} else {
return null;
}
}
}
}
@Override
public User findUserByEmail(String email) throws SQLException {
// 和 findUserByUsername 类似
}
}
```
最后,我们创建一个 UserService 类,调用 UserDao 的方法完成注册功能:
```java
public class UserService {
private UserDao userDao = new UserDaoImpl();
public void register(User user) throws SQLException {
// 判断用户名是否已存在
User u = userDao.findUserByUsername(user.getUsername());
if (u != null) {
throw new IllegalArgumentException("用户名已存在");
}
// 判断邮箱是否已存在
u = userDao.findUserByEmail(user.getEmail());
if (u != null) {
throw new IllegalArgumentException("邮箱已被注册");
}
// 添加用户
userDao.addUser(user);
}
}
```
这样,我们就完成了一个简单的 JavaWeb 分层实现注册功能的案例。需要注意的是,这里的数据库连接等细节并没有完全实现,需要根据实际情况进行调整。