栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis之@Param注解源码解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis之@Param注解源码解析

世界上只有两种人,懒人和漫无目的的人,作为一名工程师如果不勤奋且没有目标,淘汰是必然的
学无止境 点我 跳转到Java工程师必备技术栈

目录

一、使用二、源码解析

一、使用

mybatis在多参数情况下默认会将参数按顺序放入map集合,key为param1,param2

User getUserByCondition(int id,String name)

    select *
    from user
    where id = #{param1}
      and name = #{param2};

使用@Param可以自定义key

User getUserByCondition(@Param("id") int id, @Param("name") String name);

二、源码解析

1、debug运行并进入该方法

2、发现运用了代理模式,进入红框的invoke方法

3、再进入

4、sql语句的命名标识按namespace+id,类型为sql语句的类型

5、该方法为Select类型,接着判断方法返回值

6、以上都不成立,执行方法将方法参数转为sql命令的参数,进入该方法,再进入

7、此时不清楚names是什么,需要找出names

8、在该类ParamNameResolver找到names

9、该方法为names赋值

10、回到第7步,先看看传进去的真实参数

11、精华代码,含mybatis默认map的kv和自定义map的kv的设置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754265.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号