问题描述: SQL语句:sql="select * from users where u_Id=? or u_name=? or u_code=?;"; queryRunner.query(sql,new BeanHandler<Users>(Users.class),user.getID(),user.getName(),user.getCode); 新增的数据查询的返回都是null;
尝试的方法:
1、查询之前将user.setID(0)
2、将id和code的位置互换
3、现在将SQL语句改成了and方式还是查询不到结果
代码:
public Users selectUser(Users user) {
System.out.println("************" );
System.out.println(user);
StringBuilder sql = new StringBuilder( "select * from users where 1=1" );
List list = new ArrayList( );
if (user.getUId()!=null){
sql.append(" and u_id=?");
list.add(user.getUId());
}
if (user.getUName()!=null||user.getUName()!=""){
sql.append(" and u_name=?");
list.add(user.getUName());
}
if (user.getUCode()!=null||user.getUCode()!=""){
sql.append(" and u_code=?");
list.add(user.getUCode());
}
System.out.println( sql.toString());
try {
Users result= queryRunner.query(sql.toString(),new BeanHandler<Users>(Users.class),list.toArray());
System.out.println(result );
return result;
} catch (SQLException throwables) {
throwables.printStackTrace( );
}
return null;
}
返回的结果:
jar包版本:
你将代码的sql语句在数据库直接执行看看能不能查出数据
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m
问题已查到,是因为mapper.xml中resultMap的返回值与数据库查询结果的值没有对应上