使用通用mapper接口出现的错误

本文记录了一位开发者在使用通用Mapper时遇到的空指针异常问题,详细描述了问题现象:在调用selectOne方法时,第二次查询出现错误,控制台显示的SQL语句带有多个未定义的参数,导致查询失败。作者尝试多种解决办法未果,最终选择放弃通用Mapper,改用手写MyBatis SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天在看通用mapper的文档,决定在项目里使用,却出现了百思不得其解的问题

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

这是我的继承mapper接口,放在一个公共类里。

import com.example.importutil.common.MyMapper;
import com.example.importutil.pojo.WxappPage;


public interface WxappPageDao extends MyMapper<WxappPage> {

}

这是我其中的一个接口继承了mapper接口。
我在使用的时候问题来了,我调用了两次selectOne方法,但是控制台总是给我报空指针异常,于是我debug控制台打印sql语句,发现第一次查询, wxpage=wxappPageDao.getOne(id);查询成功,sql 语句 为 select id,,,,, where id=?,但是第二次查询就报错,sql语句为select id,,where id=?,=?,=?…,根本就查询不到,因为没有传那么多参数。我试了很多次,都没有解决,其他的添加和修改也是如此。无奈放弃了通用mapper接口,改用了传统mybatis,手写sql语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值