mapper接口入参 入参设置方式: 1.单独的参数与对象均直接按默认属性名匹配 (得有对应get、set方法) 2.@param 注解,注解名称代表参数对象 3.
package com.Dao; import com.person.People; import org.apache.ibatis.annotations.Param; import java.util.Map; //不同参数配置 public interface Pojo2Parament { //自定义对象 public int firstInsert(People people); //Map集合 public int secondInsert(Map<String,Object> map); //基本数据类型 public int thirdInsert(String name,String sex); //注解设置参数 public int AnonationInsert(@Param("one") String a, @Param("two") String b); }
mapper.xml参数设置与匹配规则
规则简述
parameterType:入参类型,自定义参数一定要写具体类路径取值
- sql中参数匹配用#{pojo.properties} (用到预编译,取出的值视为普通字符串)
- 如果是${pojo.properties} 会参与sql编译,无预编译,可能造成sql注入问题
- #{param1}, #{param2}或者#{arg0},#{arg1}
入参为对象
<insert id="firstInsert" parameterType="com.person.People"><!--参数为自定义类型的需要声明参数类型--> <!-- 参数是People对象 name,sex都是People中的属性名,不能自己随便定义 直接接收传入的People对象,按对应get+此处参数名(不区分大小写)作为调用的接口中的get方法的方法名来获取值并按名称将值放入对应的预编译中 默认增长的主键如不指定,可以直接写上列名,不用从People出调用get方法来获取值--> insert into pojo values (id, #{name}, #{sex}) </insert>
入参为基本数据类型
<!-- 参数是基本数据类型--> <insert id="thirdInsert"> <!-- 预编译参数设置为 #{param1}, #{param2}或者#{arg0},#{arg1}, 适用于多个参数(基本数据类型,这种可以直接用作预编译参数的) arg从0开始,param从1开始--> <!--参数列表多参,不按顺序,而是按名称对应的话,使用@param注解--> insert into pojo values (id, #{param1}, #{param2}) </insert>
入参为Map
机制为getKey()
<insert id="secondInsert"> <!-- 参数name,sex都是map中的key名,机制是取得map中设置的键值对的值 如果没对上,则getKey(key)返回来的是null,存入预编译处 参数类型为Map,不用写paramentType=""这个声明 --> insert into pojo values (id, #{name}, #{sex}) </insert>
入参已用@param注解指定名称
<insert id="AnonationInsert"> <!--参数类型为注解配置,也不需要声明参数类型--> <!--必须是注解中设置的参数名称--> insert into pojo values (id,#{one},#{two}) </insert>
标签:insert,String,into,pojo,入参,类型,Mybatis,返回值,public From: https://www.cnblogs.com/deity-night/p/17575750.html