mybatis的参数处理

多个参数取值

普通多参数

public Employee getEmpByIdAndLastName(Integer id,String LastName)         取值#{param1}  #{param2}   或者#{1} #{1}
命名参数:public Employee getEmpByIdAndLastName( @Param("id") Integer id  ,  @Param("LastName)") String LastName)   
明确指定封装参数时map的key:@Param("id")   多个参数会被封装成一个map  key:使用@Param注解指定的值  value:参数值
#{指定的key}  取值对应的参数值

pojo:

如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo  #{属性名} :取出传入的pojo的属性值

Map:

如果多个参数不是业务模型中的数据,没有对应的pojo,(不经常使用,因为每次都要定义一个map)为了方便,我们也可以传入map
sql中用#{key值}去除对应的value值
map<String,object> map = new HashMap<>();
map.put("id",1);
map.put("lastname","tom");
public employee getempbymap(map<string,object> map);   

TO:

如果多个参数不是业务模型中的数据,但是经常要使用,推荐来编写一个TO(transfer object)数据传输对象

page{   //分页
    int index;
    int size;
}

思考

public employee getemp( param("id") integer  id, String lastname);
    取值 id==>#{id/param1}   lastname==>#{param2}

public employee getemp(integer  id, @param("e") employee emp);
    取值 id==>#{param1}   lastname==>#{param2.lastname/e.lastname}

###特别注意:如是Collection(List,Set)类型或者是数组也会特殊处理,它是把传入的list或者数组封装在map中
        key:Collection(collection),如果是List还可以使用key(list)   数组(array)
public employee getempbyid(List <Integer> ids);
    取值:取出第一个id的值: #{liist[0]}

https://www.bilibili.com/video/av29479964/?p=22 学习mybatis的笔记

猜你喜欢

转载自www.cnblogs.com/sm1128/p/10608218.html
今日推荐