• 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的笔记

  • 相关阅读:
    hosts 文件妙用
    asp.net 各种路径
    正则表达式
    int.Parse()、int.TryParse()和Convert.ToInt32()的区别
    总结.NET 中什么时候用 Static
    利用.net的内部机制在asp.net中实现身份验证
    server.transfer 用法
    sql server Datetime格式转换
    如果在代码中使用JS
    js 添加广告
  • 原文地址:https://www.cnblogs.com/sm1128/p/10608218.html
Copyright © 2020-2023  润新知