从零开始学Mybatis(六)——Mybatis参数传递

  • 单个参数

对于单个参数的形式,Mybatis可以接收基本类型,对象类型、集合类型的值,且可以直接使用这个参数而不需要经过任何处理

从零开始学Mybatis(六)——Mybatis参数传递_第1张图片

参数类型为对象类型示例

从零开始学Mybatis(六)——Mybatis参数传递_第2张图片

参数类型为Integer示例

从零开始学Mybatis(六)——Mybatis参数传递_第3张图片

参数类型为String示例

从零开始学Mybatis(六)——Mybatis参数传递_第4张图片

  • 多个参数

对于任意多个参数,都会被Mybatis重新包装成一个Map传入,而Map的key值为param1,param2......,value值就是参数的值

多个参数传递示例

从零开始学Mybatis(六)——Mybatis参数传递_第5张图片

从零开始学Mybatis(六)——Mybatis参数传递_第6张图片从零开始学Mybatis(六)——Mybatis参数传递_第7张图片

Mybatis在传输多个参数时,会将多个参数封装成Map,默认key为arg0,arg1......value值为参数,同时还会以param1,param2......为key备份到Map中,value值也是为参数,即如下图所示

  • 使用@Param注解命名参数

在传递多个参数时,Mybatis封装Map时默认是以arg0,arg1......作为key值的,如果我们想自己定义key值,则需要使用@Param注解。

当使用了@Param注解后,key值则为我们指定的名称,value值就是具体的参数。

使用@Param注解示例

从零开始学Mybatis(六)——Mybatis参数传递_第8张图片

 从零开始学Mybatis(六)——Mybatis参数传递_第9张图片

从零开始学Mybatis(六)——Mybatis参数传递_第10张图片

由于我们使用了@Param注解,封装Map时arg0,arg1.......会被我们指定的名称取代作为key值,value值为参数。同时,Mybatis封装Map时还会以param1,param2......为key备份到Map中,value值也是为参数。此时变化如图

从零开始学Mybatis(六)——Mybatis参数传递_第11张图片

  • 传递POJO类对象参数

从零开始学Mybatis(六)——Mybatis参数传递_第12张图片

从零开始学Mybatis(六)——Mybatis参数传递_第13张图片从零开始学Mybatis(六)——Mybatis参数传递_第14张图片 

  • 传递Map类型参数

从零开始学Mybatis(六)——Mybatis参数传递_第15张图片

从零开始学Mybatis(六)——Mybatis参数传递_第16张图片

从零开始学Mybatis(六)——Mybatis参数传递_第17张图片

在执行sql时,#{cust_id}被5替换,#{cust_name}被赵六替换

你可能感兴趣的:(Mybatis,java,mybatis)