登录页面查询增删改查
时间: 2024-12-29 14:13:15 浏览: 4
### 实现登录页面中的CRUD操作
在Web应用程序中,通常不会直接在登录页面实现完整的CRUD(创建、读取、更新、删除)功能。然而,在某些情况下,可以在用户成功登录后展示一个管理界面来执行这些操作。下面将以Spring MVC框架为例说明如何构建这样的应用。
#### 创建实体类
定义一个`User`实体用于表示用户的表结构:
```java
public class User {
private int id;
private String username;
private String password;
// Getters and Setters...
}
```
#### 数据访问对象(DAO)层
编写DAO接口及其具体实现来进行数据库交互。这里假设已经配置好了JDBC连接池并引入了必要的依赖库[^2]。
```java
// UserDao.java
import java.util.List;
public interface UserDao {
void add(User user);
List<User> getAll();
boolean delete(int userId);
User getOneById(int userId);
}
// UserDaoImpl.java
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
JdbcTemplate jdbcTemplate;
public void add(User user){
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
jdbcTemplate.update(sql,user.getUsername(),user.getPassword());
}
public List<User> getAll(){
String sql="SELECT * FROM users";
return jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(User.class));
}
public boolean delete(int userId){
String sql ="DELETE FROM users WHERE id=?";
return jdbcTemplate.update(sql,userId)>0?true:false;
}
public User getOneById(int userId){
String sql= "SELECT * FROM users where id=?";
try{
return jdbcTemplate.queryForObject(sql,
new Object[]{userId},new BeanPropertyRowMapper<>(User.class));
}catch(Exception e){return null;}
}
}
```
#### Service服务层
为了保持良好的分层架构设计模式,还需要有一个Service层作为业务逻辑处理单元[^1]。
```java
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void addUser(User user){
userDao.add(user);
}
public List<User> listAllUsers(){
return userDao.getAll();
}
public boolean removeUser(int userId){
return userDao.delete(userId);
}
public User getUserInfo(int userId){
return userDao.getOneById(userId);
}
}
```
#### 控制器(Controller)
最后一步是在控制器里接收HTTP请求并将它们转发给相应的service方法去调用具体的业务逻辑。
```java
@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
private UserService userService;
@GetMapping("/users")
public ModelAndView showUsersPage(ModelAndView modelAndView){
modelAndView.addObject("userList",userService.listAllUsers());
modelAndView.setViewName("manage_users");
return modelAndView;
}
@PostMapping("/add_user")
public String handleAddUser(@ModelAttribute("user") User newUser,BindingResult result){
if(result.hasErrors()){
return "error_page";
}
userService.addUser(newUser);
return "redirect:/admin/users";
}
@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable(value = "id") Integer userId){
userService.removeUser(userId);
return "redirect:/admin/users";
}
@GetMapping("/edit/{id}")
public ModelAndView editUserForm(@PathVariable(value = "id")Integer userId,ModelAndView modelAndView){
modelAndView.addObject("userToEdit",userService.getUserInfo(userId));
modelAndView.setViewName("update_user_form"); // 假设存在此视图模板文件
return modelAndView;
}
@PostMapping("/save_changes")
public String saveChanges(@ModelAttribute("updatedUser") User updatedUser){
// 更新操作的具体实现取决于实际需求
return "redirect:/admin/users";
}
}
```
上述代码片段展示了在一个典型的基于Spring MVC的应用程序中如何通过不同的层次来完成CRUD操作的功能。请注意,这只是一个简化版的例子;真实项目可能涉及更多的细节和技术栈组件,比如安全性验证、异常捕获机制等。
阅读全文