求网站建设合伙人,重庆工程建设信息网证件查询,外国做水吧设计的网站,湖南网前言#xff1a;记录查找自动组拼SQL语句的过程 首先在BaseMapper其中的一个方法下打个断点 在断点显示的值栏找到相关的SQL
发现SQL语句在MappedStatement对象中#xff0c;而sqlSource存的就是相关的sql语句 然后在MappedStatement这个对象打断点#xff0c;看看到底是…前言记录查找自动组拼SQL语句的过程 首先在BaseMapper其中的一个方法下打个断点 在断点显示的值栏找到相关的SQL
发现SQL语句在MappedStatement对象中而sqlSource存的就是相关的sql语句 然后在MappedStatement这个对象打断点看看到底是哪个对象对它进行了操作 发现是AutoSqlInjector创建了MappedStatement 在AutoSqlInjector对象找到与selectById相关的一个方法打断点 SqlSource果然在这里创建出来了createSqlSource就是具体过程然后添加到MappedStatement对象中此SQL完成组拼
在createSqlSource方法打下断点进入具体的组拼过程
方法sqlSelectColumns就是具体的组拼方法一直在此方法进行递归 在此方法中迭代器在不断迭代组拼
最后SQL全部完成组拼存在集合对象中就可以取出来了
总结学会从逆推到顺推学会怎样打断点是关键