从数据库查询表中某行数据,表中有查询的对应数据,返回结果对象中对应列的值却为null

从数据库查询表中某行数据,表中有查询的对应数据,返回结果对象中对应列的值却为null

public class Data extends Model<Data>{

public static final Data dao = new Data();

public static Data isExist(String user, String password) {
        String sql = "select * from " + Const.TAB + " where user = '" + user              + "' AND password = '" + password+ "'";
        return dao.findFirst(sql);

}


查询结果自动会是对象吗?不能直接得到对应行代表的Data对象吗?@Jfinal


评论区

JFinal

2016-10-22 12:54

确保当前的 where 条件为 true,就一定能查到数据,建议用这种方式去查:findFirst("select * from t where user=? and password=?", user, password); 不必将参数拼装到 sql 中,jfinal 支持动态参数传递

题外话,账户表查询出现 password = xxx 的条件,通常是 password 保存为了明文,有安全隐患,通常做法是密码加盐再 hash 后保存:
hasedPass = HashKit.sha256( 32字符随机盐 + 密码原文 )

热门反馈

扫码入社