记录跟着小傅哥手敲mybatis源码第四章遇到的小问题

手敲Mybatis(一)-实现Mapper代理注册和使用 Mybatis使用最多的就是代理模式,要学会Mybatis必须会代理模式的使用,所以需要先了解java中的动态代理,也可以看我之前的博文,传送门如下: 理解代理模式MyBatis就掌握了一半(详解动态代理原理) 本章节学习来源是小傅哥博客,传送门:bugstack 虫洞栈,通过此博客学习Mybatis来学习它的思路,经历手敲、推敲、琢磨、来形成自己思路语言总结。 此章节主要是处理我们对于Dao接口,我们没有实现Dao却能够使用此接口反馈实现结果,原因是Mybatis的代理模式,所以我们要实现对于Myb 阅读详情

记录跟着小傅哥手敲mybatis源码第四章遇到的小问题

//在下面的代码中,当value类型为timestamp时,执行method = clazz.getMethod(setMethod, Date.class);
//这段代码的意思是通过getMethod方法获取到类clazz中名为setMethod的方法对象。该方法接受两个参数:方法名和参数类型数组。在这里,方法名为setMethod,参数类型为Date.class,表示该方法接受一个Date类型的参数。然后,通过调用getMethod方法返回的方法对象,可以动态地调用类clazz中的setMethod方法,并传入一个Date类型的参数。
//报错信息为:java.lang.NoSuchMethodException:com.cy.rs.service.bugstack_smail_mybatis.User.setCreateTime(java.sql.Date)
//大概意思是没有这个方法,但是在User类中是有这个方法的,并且类型也是Date,注意看报错信息后面的java.sql.Date
//然后我看DefaultSqlSession类型引用的Date是java.sql.Date,而User类中引用的类型却是java.util.Date,我是傻逼,成功解决这个问题
//如果两个类引用的全是java.util.Date的话,成功解决问题
//如果两个类引用的全是java.sql.Date的话,则会在method.invoke(obj, value);这里报错,报错信息为:
//java.lang.IllegalArgumentException: argument type mismatch
private <T> List<T> resultSet2Obj(ResultSet resultSet, Class<?> clazz) {
        List<T> list = new ArrayList<>();
        try {
            ResultSetMetaData metaData = resultSet.getMetaData();
            int columnCount = metaData.getColumnCount();
            // 每次遍历行值
            while (resultSet.next()) {
                T obj = (T) clazz.newInstance();
                for (int i = 1; i <= columnCount; i++) {
                    Object value = resultSet.getObject(i);
                    String columnName = metaData.getColumnName(i);
                    String setMethod = "set" + columnName.substring(0, 1).toUpperCase() + columnName.substring(1);
                    Method method;
                    if (value instanceof Timestamp) {
                        method = clazz.getMethod(setMethod, Date.class);
                    } else {
                        method = clazz.getMethod(setMethod, value.getClass());
                    }
                    method.invoke(obj, value);
                }
                list.add(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

package com.cy.rs.service.bugstack_smail_mybatis;

import java.util.Date;

public class User {

    private Long id;
    private String userId;          // 用户ID
    private String userHead;        // 头像
    private Date createTime;        // 创建时间
    private Date updateTime;        // 更新时间

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserHead() {
        return userHead;
    }

    public void setUserHead(String userHead) {
        this.userHead = userHead;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}

硬件开发流程 研发流程在一个有一定规模的企业中起到了非常重要的作用,也是一个产品或者项目成功量产出货依赖的平台体系,作为工程师如果想要走的更远,就必须了解流程体系,了解如何对产品的开发质量进行更好的管控。... 阅读详情

相关推荐

Android Studio安装常见问题详解——Android Emulator Hypervisor Driver for AMD Processors installation failed.

目录一、问题描述二、解决方案2.1 开启CPU虚拟化2.2 禁用Hyper-V2.3 使用管理员命令行在驱动程序包中执行“silent_install.bat” 一、问题描述 新买的AMD轻薄本,在安装Android Studio时遇到问题: Android Emulator Hypervisor Driver for AMD Processors installation failed. 笔记本配置为: 二、解决方案 2.1 开启CPU虚拟化 设置虚拟化的步骤这里不进行详细介绍了。如果需要,可以自行百

Wendy的博客 4万+

手写类似dubbo的rpc框架第三章《rpc框架》

案例介绍 结合上面两章节,本章将实现rpc的基础功能;提供一给rpc中间件jar给生产端和服务端。 技术点; 1、注册中心,生产者在启动的时候需要将本地接口发布到注册中心,我们这里采用redis作为注册中心,随机取数模拟权重。 2、客户端在启动的时候,连接到注册中心,也就是我们的redis。连接成功后将配置的生产者方法发布到注册中心{接口+别名}。 3、服务端配置生产者的信息后,在加载xml时候由...

bugstack虫洞栈 1921

S4 codingblock增加客户化字段的一些小问题

今天使用codingblock增加了两个客户化字段后(S4版本),查看常用的几个表 ACDOCA BSEG 等等两个客户化字段安静的出现在表内,以为没有问题了 。结果后来MM那边查看物料凭证时程序直接dump,后来开发查明原因居然是因为财务增加的这两个增强字段的原因。 报错如下图所示: 主要是因为增加了字段后,更新了后台表,但是没有自动更新到视图。就是MSEG表增加了这两个字段,但是呢他对应的视图NSDM_V_MSEG没有增加,导致两边的结构不一致。 所以要解决这个问题,只能在视图NSDM_V_MSEG增

m0_46145967的博客 3921

设计模式之装饰器模式(四)

装饰器模式是一种常用的面向对象设计模式,它主要解决了类似于继承等静态方式不灵活、不易扩展以及维护成本高的问题。该模式通过在运行时动态地为对象添加功能,而不需要对源代码进行修改,从而有效地增强了系统的可扩展性和可维护性。

weixin_43077406的博客 163

Qwen3-VL、Qwen3-Next与Qwen3.5多模态架构深度解剖

多模态大模型的核心不在参数规模,而在于视觉与文本如何协同建模。本文从基础概念切入,解析视觉语言模型中视觉编码器、跨模态注意力、特征对齐与token压缩等关键原理;阐述ViT、CLIP-ViT及动态压缩模块(HDTC)在语义表征、空间感知与计算效率上的技术权衡;强调结构设计如何决定模型在医学影像、工业质检、遥感分析等高要求场景中的真实能力边界;最终聚焦通义千问最新三套VL架构——Qwen3-VL、Qwen3-Next与Qwen3.5——揭示其背后迥异的融合哲学与工程取舍,为选型、微调与推理优化提供底层依据。

weixin_33778544的博客 818

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 413

《Mybatis 手撸专栏》第1章:开篇介绍,我要带你撸 Mybatis 啦

《Mybatis 手撸专栏》正式启动,此次内容会我们之前完成手写 Spring一样,拆解功能、简化流程、渐进实现,让读者能够更容易的学习到最有价值的知识。

bugstack虫洞栈 3295

从零配置Archery:手把手教你用Docker部署多数据库审核系统(MySQL/PostgreSQL/ClickHouse)

本文详细介绍了如何从零开始使用Docker部署Archery多数据库审核系统,涵盖MySQL、PostgreSQL和ClickHouse的配置与整合。文章提供了生产级Docker-compose配置、审核规则定制、工单流程设置以及企业微信通知集成等实战指南,帮助团队构建统一的企业级SQL审计平台,提升数据库操作规范与安全。

e4f5g6h7的博客 941

【分享】从Mybatis源码中,学习到的10种设计模式

23种设计模式,Mybatis源码中竟然用了一半!怒卷Mybatis设计模式,从源码中学习设计模式,太爽了!

bugstack虫洞栈 1803

从部署到养成:Hermes智能体接入DeepSeek与微信机器人的完整实战指南

智能体(Agent)正成为大模型从“对话”走向“行动”的关键形态。它通过拆解指令、调用工具、执行任务,让AI真正参与工作流。Hermes作为可本地部署的开源智能体框架,支持接入DeepSeek等主流大模型,并提供网关、工具调用、记忆管理等模块化能力。从Docker容器部署到微信机器人桥接,从自动化定时任务到Computer Use桌面控制,Hermes将个人助理从概念落地为可运行的工程系统。本文基于真实实践,梳理架构原理、部署流程、API配置与高频故障排查,为技术玩家提供一套从零到一的上手指南。

weixin_29045001的博客 264

World Creator地形导入UE

导出预设选择高度图(heigh map)格式选择PNG 16位,或者RAW 16位,需要反转y轴(与虚幻不同),命名格式会自动带一个× , 将×改成_ 或者删掉自己命名 (虚幻名称不支持x符号)导入虚幻 , 修改Z轴 , 就是用 地形最高 - 地形最低 , 然后除以512 , 再乘以100。把这个数字填入Z轴缩放 , 点击生成即可。

UE星空 2155

敲了几万行源码后,我给Mybatis画了张“全地图”

傅哥手写Mybatis,怎么把Mybatis都给手写了!—— 就这么学源码,面试还是个事?如果这些能帮助到你成长,感谢点赞、留言,和分享 嘿嘿

bugstack虫洞栈 1664

rk3568 rk628桥片 rgb2hdmi

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 452

《手写Mybatis渐进式源码实践》实践笔记 (开篇)

MyBatis 是一个半自动 ORM(对象关系映射)持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作,可以通过 XML 或注解的方式进行配置。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects, 普通的 Java对象)映射成数据库中的记录。

weixin_37693760的博客 1046

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

工作两年跳槽,简历投出去石沉大海?CodeGuide 简历优化与面试准备全攻略

> **导读**:这是一篇面向"工作两年左右、想通过跳槽进入有挑战性项目环境"的 Java 开发者的实战指南。文章以 CodeGuide 开源仓库中《工作两年简历写成这样,谁要你呀!》一文为核心骨架,完整还原了简历诊断、简历改写、面试考点梳理的全过程,并结合仓库中沉淀的 Java 面试手册、手写 Spring/MyBatis 系列、Netty 实战系列等源码级学习资料,给出可落地、可检索、可引用的

gitblog_00625的博客 362

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

CodeGuide 学习方法论:国外程序员真的不背八股文吗?——全球开发者学习资源与 Java 技术进阶路线解析

> 本文是 CodeGuide 仓库「关于学习」系列的一篇方法论导读,基于 [《国外码农,会卷八股文吗?》](https://link.gitcode.com/i/db69e8e39eab71c48a4bbd5f56765e9c) 展开。文章首先剖析国内程序员"卷八股、刷算法、读源码"背后的成因,随后盘点芬兰、韩国、纽约、荷兰等地开发者公开的学习资源形态,并结合 CodeGuide 仓库自带的[面

gitblog_00552的博客 855

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

程序员为什么热衷于造轮子:从 CodeGuide 仓库源码实践看造轮子与成长晋升的关系

> 导读:本文以 CodeGuide 开源仓库中作者小傅哥的工程实践为主线,回答一个困扰很多程序员的问题——"造轮子到底值不值得"。文章完整梳理了仓库内可考证的多个自研轮子(RPC 通信组件、用 Java 实现 JVM、分布式任务中间件 DcsSchedule、服务治理白名单中间件、Netty 仿桌面版微信 IM 等)从需求到实现的源码细节,并深入讨论造轮子与升职加薪的真实关系、如何面对"不要重复

gitblog_00500的博客 586

校招面试官都问你啥:行为事件挖掘、简历等级与 CodeGuide 实战项目备战指南

> 一场校招面试为什么"热情地聊了 20 分钟却没有下文"?本文以 CodeGuide 开源仓库(小傅哥多年一线互联网 Java 开发与招聘经验的技术汇总)中的《面试官都问你啥》一文为主线,系统拆解大厂面试官的岗前考核机制、以"行为事件挖掘"为核心的提问方式、简历的三个等级划分,以及实习期没有大项目时该如何积累可聊的技术点。读完你可以理解面试官提问背后的逻辑,并对照仓库内的面经手册、Lottery

gitblog_00320的博客 135

花了19周,终于把这套源码解析图,全部画完了!

每周画一张MyBatis源码图,渐进式学习,19周,终于画完啦!💐 再配合每一张图都来一个深度的视频讲解,完美!终于是可以让粉丝伙伴们,嘎嘎稳的吸收到源码的设计精髓。—— 一套源码的学习,收益于整个编程生涯!小傅哥学过的源码有很多,包括;Spring、Dubbo、MQ、任务调度框架等,但最让我受益的是 MyBatis 源码。

bugstack虫洞栈 1774

把MyBatis当项目一样,讲透源码的技术书籍!

想学好编程突破阶段瓶颈,为自己的职业生涯续期。就要把时间放在有价值的硬核项目上。因为硬核项目时间投入价值回报!所以一股技术清流的小傅哥,为你编写了一本新书。全书21章320页耗时2年出版。此书以实现MyBatis项目为目标,进行逐个功能模块渐进式拆解实现。就像手把手带着你敲项目一样,完成MyBatis的源码学习。通过这样的学习方式带你领略源码级设计思维。所以千万别觉得开发项目只有MVC和DDD。

bugstack虫洞栈 1282

Mybatis源码学习01

Mybatis源码学习01

qq_44275894的博客 267

《手写Mybatis》第5章:数据源的解析、创建和使用

解析上一章解析 XML 中的 SQL,继续解析关于 DataSource 数据源信息配置,并建立事务管理和连接池的启动和使用。并将这部分能力在 DefaultSqlSession 执行 SQL 语句时进行调用。

bugstack虫洞栈 1474

《Mybatis 手撸专栏》第2章:创建简单的映射器代理工厂

解耦映射器与数据库操作,给DAO接口生成代理类,包装数据库处理过程。

bugstack虫洞栈 1655

《Mybatis 手撸专栏》第9章:细化XML语句构建器,完善静态SQL解析

《Mybatis 手撸专栏》已经更新到第9章节,逐步开始体现运用设计原则处理分治和抽象完成职责分离的过程,学习并领悟后,在以后的实际编码中,也能做出更有高度和适应未来迭代的架构设计。

bugstack虫洞栈 1243

《Mybatis 手撸专栏》第6章:数据源池化技术实现

本章通过实现 Mybatis 池化数据源,掌握日常开发中所配置的最大连接数、活跃连接数、空闲等待时长等原理。

bugstack虫洞栈 2226

‍Mybatis源码我搞透了,面试来问吧!写了134个源码类,1.03万行代码!

完结撒花:4个月、20章、134个类、1.03万行代码!我的资料编写,是希望让更多和我一样,在这条路上的研发伙伴,走的更扎实、更长久、更广阔!

bugstack虫洞栈 2208
上一篇: 激活Diffblue Cover插件社区版失败解决方案
下一篇: 【无标题】
不早睡不改名@
博客等级 码龄5年 536粉丝 306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值