From f2cc7a822af0978dcd101ba55e3d05f57d403f27 Mon Sep 17 00:00:00 2001 From: nieqiurong Date: Fri, 10 Jan 2025 15:56:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=87=8D=E5=86=99BaseMapper?= =?UTF-8?q?=E6=96=B9=E6=B3=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/baomidou/mybatis-plus/issues/6658 --- src/content/docs/reference/question.mdx | 28 ++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/content/docs/reference/question.mdx b/src/content/docs/reference/question.mdx index 27f1eb1f..d34c4431 100755 --- a/src/content/docs/reference/question.mdx +++ b/src/content/docs/reference/question.mdx @@ -708,8 +708,8 @@ MyBatis Plus 不支持复合主键并强制使用唯一的 ID,这是出于以 示例: java -Djava.security.egd=file:/dev/urandom -jar xxxx.jar - + - 原因:驱动配置不兼容 > 解决方案:驱动连接去掉 `rewriteBatchedStatements=true` 配置 @@ -725,6 +725,7 @@ mybatis-plus: 时,null值对应的key没有添加至Map里'}> + - 原因:mybatis默认情况下, 当返回 null 时,不会调用put方法 > 解决方案:配置callSettersOnNulls 为true ```yaml @@ -732,4 +733,29 @@ mybatis-plus: configuration: call-setters-on-nulls: true ``` + + + +重写接口方法请区分default方法和抽象接口方法,重写的方法需要以最终调用的实际方法为准. +抽象接口方法: 直接在XML重写此方法可完成 +defalut方法: 直接重写真实调用的方法或者把原defalut重写为真实接口方法,可在XML或注解的方式重写执行语句. + +```java +// 方式一: 注解式重写BaseMapper中selectPage方法(低版本下可能为接口方法,这里以新版defalut为例) +@Override +@Select("select * from h2user") +

> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + +// 方式二: XML式重写BaseMapper中selectPage方法(低版本下可能为接口方法,这里以新版defalut为例) +@Override +

> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper); +// 这里自己去XML里面重写selectPage的查询语句 + +// 方式三: 重写BaseMapper中selectPage方法 +@Override +default

> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper) { + return xxxx(); //实际调用的自己定义的真实接口方法 +} +``` + \ No newline at end of file