tk.mybatis中方法使用注意事项

本文揭示了在使用MyBatis的Example创建器时,andEqualTo方法在处理station.getCode()为null的情况下的行为,指出它可能导致全表查询。关键在于理解NotNull属性和非空条件的设置。通过分析Criteria类和addCriterion方法,提出在使用时务必进行空值检查以达到预期业务效果。
 Example example = new Example(Receiver.class);
 example.createCriteria().andEqualTo(Receiver.CODE, station.getCode());
 int count = receiverMapper.selectCountByExample(example);

这几行代码有没有问题,

实际上达不到我们业务要求的效果,当station.getCode()为空的时候,我们想当然的以为就是查询为空时的条数,但实际并不是。。。

查看andEqualTo的源码

        public Example.Criteria andEqualTo(String property, Object value) {
            this.addCriterion(this.column(property) + " =", value, this.property(property));
            return (Example.Criteria)this;
        }

继续查看addCriterion方法

1        protected void addCriterion(String condition, Object value, String property) {
2            if (value == null) {
3                if (this.notNull) {
4                   throw new MapperException("Value for " + property + " cannot be null");
5                }
6            } else if (property != null) {
7                this.criteria.add(new Example.Criteri
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值