dao层username怎么会为空,不懂了求助

qq_40846874 2018-01-13 10:03:18
username取到的值为null,没有报错。
public class login {
public boolean findName1(String username,String password) throws SQLException{
Connection conn = Jdbc1.getConnection();
PreparedStatement ps = conn.prepareStatement("select password,username from registe where password=? and username=?");
ps.setString(1,password);
ps.setString(2,username);
ResultSet rs = ps.executeQuery();
boolean flag =rs.next();
return flag;

}

public class LOgin {
public String nameCha(User user1){
login l = new login();
System.out.println(user1);
try {
if(l.findName1(user1.getPassword(),user1.getUsername())){
return "登陆成功";
}else{
return "用户名不对或没有该用户";
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
...全文
637 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Java批发 2018-01-16
  • 打赏
  • 举报
回复
你这里应该重点看得是你的User user1这个参数 你的user1是一个实体 他应该就是你从其它地方传过来的值都是在这个里面吧 你的 getPassword() getUsername() 这两个属性的值 封装在了 你的 user1 里面 你跟进去看看在就是看看你的 值到底有没有传到里面去
不善言谈者 2018-01-15
  • 打赏
  • 举报
回复
一樓正解,你的方法中username在前,password在后,而你傳的時候,password在前,username在后,結果在進行login時,password成了username,而username成了password,
Cathy313 2018-01-15
  • 打赏
  • 举报
回复
楼上正解,你可以结帖了
leo_qy 2018-01-13
  • 打赏
  • 举报
回复
1楼和2楼说的都对,你参数肯定传错了,不过,也不排除你用户名和密码一样的情况,另外需要确定前端传到后台的参数映射是否正确了,比如你jsp写的是usename,你后台接收是以username接收的。
更好的自己520 2018-01-13
  • 打赏
  • 举报
回复
打断点debug一下,看哪里传值失败导致为null
qq_41228556 2018-01-13
  • 打赏
  • 举报
回复
.findName1(user1.getPassword(),user1.getUsername())这个方法,你的参数顺序写反了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧