相信持久层框架,大家用的都比较多,比如最原始的jdbc,到框架层,hibernate, mybatis等等,这俩的区别不是这里的重点介绍,所以对于mybatis的执行流程,从简单到复杂,以及从专业到业余的维度进行介绍,目的是希望大家能够理解其执行流程
简单维度: mapper.xml>>> 生成mappedStatement>>>id识别>>>生成sql>>>执行sql>>>返回结果
复杂维度:
第一步: 加载配置文件,主要加载mapper.xml,生成具体的mappedStatement,其具体包括传入的参数,sql语句,对象映射
第二步: 当接口层接收到具体的调用请求,会从sql中的id具体去找到配置好的mappedStatement,传入具体的参数,参数可能是map,object,基本数据类型,生成sql
第三步: 将生成的sql语句以及查询条件交由数据库去执行,并得到具体的返回结果
第四步: 将得到的结果,按照映射的配置进行转换,可以转换成hashmap,object,基本数据类型等
专业维度
直接上图:
业余维度
第一步: 选择一块场地,并进行挖洞,给每个洞标注1-10的数字
第二步: 袋鼠拿着具体的数字,找到对应的洞,并把手里的坚果存放进去
第三步: 坚果放进去之后,给袋鼠一个保险箱,并且也把钥匙给到它
第四步: 袋鼠拿着保险箱开始下一步操作