方式一:传入的参数直接就是User的对象
//UserDao.java中的代码
public User login(User user);
//UserDao.xml中的代码
<select id="login" parameterType="cn.njupt.domain.User" resultType="cn.njupt.domain.User">
select * from user
<where>
<if test="username != null and username != ''">
and username = #{username}
</if>
<if test="password != null and password != ''">
and password = #{password}
</if>
</where>
</select>
//UserService.java中的代码
public User login(User user);
//UserServiceImpl.java中的代码
public User login(User user){
return userDao.login(user);
}
package cn.njupt.controller;
import cn.njupt.domain.User;
import cn.njupt.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 用户访问的是/user/login
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
public UserService userService;
@RequestMapping("/login")
public String login(User user){
User u = userService.login(user);
if(u != null){
return "success"; //跳转到success.jsp页面
}else{
return "fail"; //跳转到fail.jsp页面
}
}
}
但是考虑到我们登录的时候只需要用户名和用户密码,而User对象中可能包含了很多信息,我们并不需要这么多信息,所以我们也可以使用以下方式。
方式二:传参是String类型
public User login(@Param("username") String username,@Param("password") String password);
<select id="login" parameterType="String" resultType="cn.njupt.domain.User">
select * from user
<where>
<if test="username != null and username != ''">
and username = #{username}
</if>
<if test="password != null and password != ''">
and password = #{password}
</if>
</where>
</select>
public User login(@Param("username") String username, @Param("password") String password);
public User login(String username,String password) {
return userDao.login(username,password);
}
import cn.njupt.domain.User;
import cn.njupt.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
public UserService userService;
@RequestMapping("/login")
public String login(HttpServletRequest request,String username,String password){
User login = userService.login
(request.getParameter("username"),request.getParameter("password"));
if(login != null){
return "success";
}else{
return "fail";
}
}
一定要注意两种方式中的UserDao的写法不一样!!!