根据上面的UserController中login 中的userService.findByUsername(username) 在 userService中写一个findByUsername方法
时间: 2023-06-02 15:02:07 浏览: 52
在UserService中写一个findByUsername方法如下:
```java
public User findByUsername(String username) {
// 查询数据库中是否存在该用户
User user = userDao.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("用户不存在");
}
return user;
}
```
该方法首先调用UserDao中的findByUsername方法查询数据库中是否存在该用户,如果不存在则抛出UsernameNotFoundException异常,否则返回该用户对象。
相关问题
优化上面UserController中login方法 根据html界面提交的username和password查找数据库数据,进行校验
以下是优化后的UserController中login方法:
```
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
String password = request.getParameter("password");
ModelAndView mav = new ModelAndView();
User user = userService.findByUsername(username);
if (user == null) {
mav.setViewName("login");
mav.addObject("error", "用户名不存在");
return mav;
}
if (!user.getPassword().equals(password)) {
mav.setViewName("login");
mav.addObject("error", "密码不正确");
return mav;
}
request.getSession().setAttribute("user", user);
mav.setViewName("redirect:/home");
return mav;
}
```
其中,userService.findByUsername(username)方法根据传入的用户名查找数据库中的用户信息,返回User对象。如果返回值为null表示用户名不存在,否则就进行密码校验。如果校验通过,将User对象存入Session中,然后重定向到首页。如果校验不通过,返回错误提示信息。
使用mybatic-plus中的geone方法写一个登录校验
MyBatis-Plus中的ge方法是用来进行大于等于(Greater Than or Equal to)比较的,不适用于登录校验。不过,MyBatis-Plus提供了eq方法用来进行等于(Equal to)比较,可以用来实现登录校验。
下面是使用MyBatis-Plus的eq方法进行登录校验的示例代码:
首先,我们需要创建一个JavaBean来表示用户:
```java
public class User {
private Long id;
private String username;
private String password;
// 省略getter和setter方法
}
```
接下来,我们需要创建一个Mapper接口来操作用户表:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
在Mapper接口中,我们继承了MyBatis-Plus提供的BaseMapper接口,这样就可以使用MyBatis-Plus提供的方法来操作数据库了。
接下来,我们可以编写一个Service来进行登录校验:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User login(String username, String password) {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("username", username).eq("password", password);
return userMapper.selectOne(wrapper);
}
}
```
在Service中,我们使用QueryWrapper来构造查询条件,然后调用selectOne方法来查询数据库中是否存在符合条件的用户。如果存在,则返回该用户对象,否则返回null。
最后,我们可以编写一个Controller来接收登录请求:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public String login(String username, String password) {
User user = userService.login(username, password);
if (user != null) {
return "登录成功";
} else {
return "用户名或密码错误";
}
}
}
```
在Controller中,我们调用UserService的login方法来进行登录校验,如果返回的用户对象不为null,则表示登录成功,否则返回错误信息。
以上就是使用MyBatis-Plus进行登录校验的示例代码,希望能对你有所帮助。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)