网站后台登陆不进去,有没有专门做名片的网站,技术合同 网站开发,seo群发软件参数处理 单个参数#xff1a;mybatis不会做特殊处理 #{参数名}#xff1a;取出参数值 多个参数#xff1a;mybatis会做特殊处理 多个参数会被封装成一个map key#xff1a;param1…paramN#xff0c;或者参数的索引value#xff1a;传入的参数值 #{}就是从map中获取指定…参数处理 单个参数mybatis不会做特殊处理 #{参数名}取出参数值 多个参数mybatis会做特殊处理 多个参数会被封装成一个map keyparam1…paramN或者参数的索引value传入的参数值 #{}就是从map中获取指定的key的值 命名参数明确指定封装参数时map的keyParam(“id”) 多个参数会被封装成一个map key使用Param注解指定值value参数值 #{指定的key}取出对应的参数值 pojo 如果多个参数正好是我们业务逻辑的数据模型我们就可以直接传入pojo#{属性名}取出传入的pojo的属性值 如果多个参数不是业务模型中的数据没有对应的pojo为了方便我们也可以传入map #{key}取出map中对应的值 TO 如果多个参数不是业务模型中的数据但是经常使用推荐来编写一个TO(Transfer Object)数据传输对象
//TO
Page
{int index;int size;
}public Employee getEmpByIdAndLastName(Integer id,String lastName);select id getEmpByIdAndLastName resultTypecom.atguigu.mybatis.bean.Employeeselect * from tb1_employee where id #{id} and last_name #{lastName}/selectEmployee employee mapper.getEmpByIdAndLastName(1, Admin);报错
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter id not found. Available parameters are [arg1, arg0, param1, param2]
### Cause: org.apache.ibatis.binding.BindingException: Parameter id not found. Available parameters are [arg1, arg0, param1, param2]
正确写法 select id getEmpByIdAndLastName resultTypecom.atguigu.mybatis.bean.Employeeselect * from tb1_employee where id #{param1} and last_name #{param2}/select命名参数法 public Employee getEmpByIdAndLastName(Param(id) Integer id,Param(lastName) String lastName); select id getEmpByIdAndLastName resultTypecom.atguigu.mybatis.bean.Employeeselect * from tb1_employee where id #{id} and last_name #{lastName}/selectmap法: public Employee getEmpByMap(MapString ,Object map);!--public Employee getEmpByMap(MapString,Object map);--select idgetEmpByMap resultTypecom.atguigu.mybatis.bean.Employeeselect * from tb1_employee where id #{id} and last_name #{lastName}/selectMapString,Object map new HashMap();map.put(id,1);map.put(lastName,Tom);Employee employee mapper.getEmpByMap(map);扩展思考:
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} 特别注意如果是CollectionListSet类型或者数组也会特殊处理。也是把传入的list或者数组封装在map中 keyCollection(collection)如果是List还可以使用这个key(list)数组(array)
public Employee getEmp(ListInteger ids);取值 取出第一个id的值 #{list[0]}