下面给大家总结了Mybatis以下几种多参数传递的方法。
方法1:顺序传参法
public User selectUser(String name, int deptId);
<select id="selectUser" resultMap="UserResultMap">
select * from user
where user_name = #{0} and dept_id = #{1}
</select>
#{}里面的数字代表你传入参数的顺序。
这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。
方法2:@Param注解传参法
public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);
<select id="selectUser" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}里面的名称对应的是注解@Param括号里面修饰的名称。
这种方法在参数不多的情况还是比较直观的,推荐使用。
方法3:Map传参法
public User selectUser(Map<String, Object> params);
<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}里面的名称对应的是Map里面的key名称。
这种方法适合传递多个参数,且参数易变能灵活传递的情况。
方法4:Java Bean传参法
public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}里面的名称对应的是User类里面的成员属性。
原文链接:https://blog.csdn.net/youanyyou/article/details/79406486
下面给大家总结了Springmvc以下几种多参数传递的方法。
//第一种 简单的数据类型的接收 页面的参数和控制类的参数名必须一致
@RequestMapping("demo1")
public String demo1(String uname,int age){
System.out.println(uname+" "+age);
return "main.jsp";
}
//第二种 简单的数据类型 页面的参数和控制类的参数名不一致
//RequestParam:接收的参数名
@RequestMapping("demo2")
public String demo2(@RequestParam(value="username") String uname,@RequestParam(value="userage")int age){
System.out.println(uname+" "+age);
return "main.jsp";
}
//第三.四种 简单的数据类型 如果出现了空值的现象 要求摸个参数必须有
//1.使用对象类型作为参数
//2.设定缺省值
//3(@RequestParam(value="xxx",required=true,defaultValue="2") 多余
@RequestMapping("demo3")
public String demo3(@RequestParam(value="username",required=true) String uname,
@RequestParam(value="userage",defaultValue="2")Integer age){
System.out.println(uname+" "+age);
return "main.jsp";
}
//第五种 对象类型的参数接收
//RequestParam:接收的参数名 --简单的域模型方式
@RequestMapping("demo5")
public String demo5(Student s){
System.out.println(s);
return "main.jsp";
}
//第六种 集合的简单数据类型参数接收
//RequestParam:接收的参数名 --简单的域模型方式
@RequestMapping("demo6")
public String demo6(@RequestParam("hover")List<String> abc){
System.out.println(abc);
return "main.jsp";
}
//第七种 对象中对象类型(单个对象,集合)的参数接收
//RequestParam:接收的参数名 --简单的域模型方式
@RequestMapping("demo7")
public String demo7( Student s){
System.out.println( s);
return "main.jsp";
}
//第八种 restful传值 路径传值法
@RequestMapping("demo8/{id}/{name}")
public String demo8(@PathVariable("name") String uname,@PathVariable int id){
System.out.println(uname+" "+id);
return "/main.jsp";
}