MyBatis的Mapper动态代理及四种传参方法

2022-06-24 08:39:46

MyBatis的Mapper动态代理

1. Mapper动态代理

mapper不使用动态代理是指dao层的实现自己创建,在接口实现类的方法中自己调用SqlSession完成对数据库的操作,这样只能向SQL中传递一个参数,多个参数要封装到POJO或者Map中,且调用SqlSession对象的方法时会有硬编码现象namespace+id
使用Mapper动态代理只需要写dao层接口,不需要创建dao层实现类,Mybatis会自动生成实现类的代理对象。在dao层只需要创建接口与映射文件即可

2. Mapper动态代理规范

  • 接口名称需要与映射文件名称相同
  • 映射配置文件中namespace必须是接口的全名
  • 接口中的方法名和映射配置文件中的标签的id一致
  • 接口中的返回值类型和映射配置文件中的resultType的指定类型一致

3. 顺序传参法

在映射文件中,SQL语句中的参数需要使用arg0,arg1…或者param1,param2…表示参数的顺序。此方法可读性低,且要求参数的顺序不能出错,在开发中不建议使用请添加图片描述
请添加图片描述

4.@Param注解传参法请添加图片描述请添加图片描述

5. POJO传参法请添加图片描述请添加图片描述

6. Map传参法

请添加图片描述请添加图片描述请添加图片描述Mapper中的参数必须与map中的key保持一致!

  • 作者:老达摩#
  • 原文链接:https://blog.csdn.net/qq_45299673/article/details/121516250
    更新时间:2022-06-24 08:39:46