功能分析:注册时,给dao层方法返回一个激活码,写入到激活邮件中,用户点击“激活”,则通过匹配激活码将用户状态改变。
遇到的问题:无法激活,判断是激活码出现问题。通过分析测试发现是dao层传入参数值有问题
原始代码
@Override
public boolean activeUser(Object... value) {
boolean flag = false;
try {
String sql = "update user set state=? where activeCode=?";
Object[] param = { 1, value.toString() };
System.out.println("value:"+value);
flag = QR.update(sql, param) > 0 ? true : false;
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
```
修改之后
java学习笔记
把传入参数 (Object... value) 修改为(String value) 解决
通过控制台输出发现
t2种传入的参数发生了改变
value:[Ljava.lang.Object;@6c2327ad
da99de04-9f2d-4f22-bc94-69930ce572e4
第一种导致传入的参数导致激活码发生了改变