例如我的代码
我先是
QueryWrapper queryWrapper = new queryWrapper;
queryWrapper.eq(“taskseq”,1111);
我如何获取到这个1111,
1.这个eq不是类似于set方法嘛,应该是吧QueryWrapper里面的某个成员变量给赋值了,我是想通过什么方法来获取get这个1111这个值
2.或者说我换个问法,对于powerMock如何做到mock数据库方法时对不同的参数返回不同的结果,特别是当这个数据库dao方法的参数是一个对象时。怎么办?
问题1和问题2解决一个就可以,其实差不多。如有有人知道,我可以追加报酬。
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.Set;
public class Query {
public static void main(String argv[]){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("taskseq",1111);
queryWrapper.getCustomSqlSegment();
Set a = queryWrapper.getParamNameValuePairs().keySet();
for(Object key: a){
System.out.println(key);
System.out.println(queryWrapper.getParamNameValuePairs().get(key));
Object value = queryWrapper.getParamNameValuePairs().get(key);
}
}
}
=========================================== 再不然就是这个。 queryWrapper.getExpression().getNormal().get(2).toString();
没太理解你的意思,如果该字段该字段会发生变化,那就用一个变量来接收他,然后在debug中,就可以看到了,测试结束后,把该变量删除。
QueryWrapper queryWrapper = new QueryWrapper();
int a = 111;
queryWrapper.eq("task",a);
你要获取
queryWrapper.eq(“taskseq”,1111); 中“1111”的值。不是获取这个查询返回的值吗?
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.Set;
public class Query {
public static void main(String argv[]){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("taskseq",1111);
queryWrapper.getCustomSqlSegment();
Set a = queryWrapper.getParamNameValuePairs().keySet();
for(Object key: a){
System.out.println(key);
System.out.println(queryWrapper.getParamNameValuePairs().get(key));
Object value = queryWrapper.getParamNameValuePairs().get(key);
}
}
}
这里的value就是你要的1111.
是通过queryWrapper.getParamNameValuePairs()返回的MAP,根据MAP的key值返回的value.value就是1111.
你试一下。如果不对继续跟我交流。