MVC 架构中,在mapper层中写传入参数为phoneNumber的数据,根据手机号后四位查询查询数据库中手机号
时间: 2024-03-03 09:51:07 浏览: 58
在 MVC 架构中,通常将数据库操作放在模型层中,而模型层中的数据访问对象通常被称为 Mapper 或 DAO(数据访问对象)。因此,您可以在 Mapper 层中实现一个方法,用于根据手机号后四位查询数据库中的手机号。
以 Java 语言为例,可能的实现如下:
```java
// UserMapper 数据访问对象
public class UserMapper {
private DataSource dataSource; // 数据源对象,这里使用 JDBC 进行演示
public UserMapper(DataSource dataSource) {
this.dataSource = dataSource;
}
public List<User> findByPhoneLast4(String last4) throws SQLException {
Connection conn = dataSource.getConnection();
try {
String sql = "SELECT * FROM user WHERE phone_number LIKE ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "%" + last4);
ResultSet rs = stmt.executeQuery();
List<User> users = new ArrayList<>();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setPhoneNumber(rs.getString("phone_number"));
users.add(user);
}
return users;
} finally {
conn.close();
}
}
}
```
在控制器层中,您可以通过调用 Mapper 方法来获取用户列表:
```java
// UserController 控制器类
public class UserController {
private UserMapper userMapper;
public UserController(UserMapper userMapper) {
this.userMapper = userMapper;
}
public List<User> searchByPhoneLast4(String last4) throws SQLException {
return userMapper.findByPhoneLast4(last4);
}
}
```
这样,您就可以通过调用 `UserController` 的 `searchByPhoneLast4` 方法并传入手机号后四位来查询用户了。注意,为了避免 SQL 注入攻击,代码中使用了 `PreparedStatement` 对象来预处理 SQL 语句中的参数。
阅读全文