请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

测试login.do,用户名不存在,传参没有成功??

怎么解决下呀,从dao层都没有拿到数据??

测试login.do结果:

https://img1.sycdn.imooc.com/szimg//59915cba00011ac815350345.jpg

debug调试结果:

https://img1.sycdn.imooc.com/szimg//59915cba00016a8107730422.jpg

https://img1.sycdn.imooc.com/szimg//59915cbb0001286007440151.jpg

控制台打印:

https://img1.sycdn.imooc.com/szimg//59915cbb00019cb808150642.jpg

【相关代码】

UserMapper.xml:

<mapper namespace="com.mall.dao.UserMapper" >
 <resultMap id="BaseResultMap" type="com.mall.pojo.User" >
   <constructor >
     <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
     <arg column="username" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="password" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="email" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="phone" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="question" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="answer" jdbcType="VARCHAR" javaType="java.lang.String" />
     <arg column="role" jdbcType="INTEGER" javaType="java.lang.Integer" />
     <arg column="create_time" jdbcType="TIMESTAMP" javaType="java.util.Date" />
     <arg column="update_time" jdbcType="TIMESTAMP" javaType="java.util.Date" />
   </constructor>
 </resultMap>
 <sql id="Base_Column_List" >
   id, username, password, email, phone, question, answer, role, create_time, update_time
 </sql>
//查看用户名是否存在
<select id="checkUsername" resultType="int" parameterType="string">
 SELECT COUNT(1) FROM mall_user
 WHERE username = #{username}
</select>
<select id="selectLogin" resultMap="BaseResultMap" parameterType="map">
 SELECT <include refid="Base_Column_List" />  from mall_user
 WHERE username = #{username},password = #{password}}
</select>
</mapper>


UserServiceImpl.java

@Autowired
private UserMapper userMapper;
@Override
public ServerResponse<User> login(String username, String password) {
   //检查用户名是否存在
   int resultCode = userMapper.checkUsername(username);
   System.out.println("------ServiceImpl返回username=---------"+username);
   if(resultCode == 0 ){
       ServerResponse.createByErrorMessage("用户名不存在");
   }
   // todo 密码登录 MD5
   //检查用户名和密码是否匹配:
   User user = userMapper.selectLogin(username,password);
   if(user == null){
       return ServerResponse.createByErrorMessage("密码错误");
   }
   //登录成功,密码处理为null;
   user.setPassword(StringUtils.EMPTY);
   return ServerResponse.createBySuccess("登录成功",user);
}


UserController.java

private IUserService iUserService;

/**
* 用户登录
* @param username
* @param password
* @param session
* @return
* 登录成功后把用户信息存进session
*/
@RequestMapping(value="login.do", method = RequestMethod.POST)
@ResponseBody
public ServerResponse<User> login(String username, String password, HttpSession session){
   ServerResponse<User> response = iUserService.login(username, password);
   System.out.println("------Controller返回username=---------"+username);
   if(response.isSuccess()){
       session.setAttribute(Const.CURRENT_USER,response.getData());
   }
   return response;
}


正在回答 回答被采纳积分+3

3回答

提问者 筱爻 2017-08-21 14:40:51

已经解决:

 SELECT <include refid="Base_Column_List" />  from mall_user

 WHERE username = #{username},password = #{password}}

应该为:

 SELECT <include refid="Base_Column_List" />  from mall_user

 WHERE username = #{username} and password = #{password}


0 回复 有任何疑惑可以回复我~
qq_浮空_03536131 2017-08-15 13:24:02

如果还不行, 看看你的调试工具,  输出那里  是不是弄错了

0 回复 有任何疑惑可以回复我~
  • 提问者 筱爻 #1
    什么输出呀?还是没好呢,一请求(login.do)就空指针异常了。
    回复 有任何疑惑可以回复我~ 2017-08-17 16:41:51
  • 提问者 筱爻 #2
    果然调试工具输入参数那里一直都HEADERS那里了,现在改过来了,参数放在body,可还是500
    回复 有任何疑惑可以回复我~ 2017-08-19 10:25:39
舞有涵意 2017-08-14 22:06:54

<select id="selectLogin" resultMap="BaseResultMap" parameterType="map">

 SELECT <include refid="Base_Column_List" />  from mall_user

 WHERE username = #{username},password = #{password}}

</select>

你好,我看到你的sql多了一个“}”,password = #{password}} ,去掉后调试一下,谢谢。

0 回复 有任何疑惑可以回复我~
  • 提问者 筱爻 #1
    哎呀 ,马虎了 , 谢谢。
    不过用户名都没有获取到,一直没弄好唉。
    回复 有任何疑惑可以回复我~ 2017-08-17 16:40:23
  • 提问者 筱爻 #2
    明明已经回复了  不知道怎么了没有唉,再回复一遍。
    花括号马虎了,已经改过来了,
    不过username都没有传参成功。
    还是没解决,一周了唉,要烦死。
    回复 有任何疑惑可以回复我~ 2017-08-19 10:23:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信