下面給大家總結了Mybatis以下幾種多參數(shù)傳遞的方法。
方法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>
#{}里面的數(shù)字代表你傳入?yún)?shù)的順序。
這種方法不建議使用,sql層表達不直觀,且一旦順序調(diào)整容易出錯。
方法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括號里面修飾的名稱。
這種方法在參數(shù)不多的情況還是比較直觀的,推薦使用。
方法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名稱。
這種方法適合傳遞多個參數(shù),且參數(shù)易變能靈活傳遞的情況。
方法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以下幾種多參數(shù)傳遞的方法。
//第一種 簡單的數(shù)據(jù)類型的接收? 頁面的參數(shù)和控制類的參數(shù)名必須一致
@RequestMapping("demo1")
public String demo1(String uname,int age){
System.out.println(uname+"? "+age);
return "main.jsp";
}
//第二種 簡單的數(shù)據(jù)類型? 頁面的參數(shù)和控制類的參數(shù)名不一致
//RequestParam:接收的參數(shù)名
@RequestMapping("demo2")
public String demo2(@RequestParam(value="username") String uname,@RequestParam(value="userage")int age){
System.out.println(uname+"? "+age);
return "main.jsp";
}
//第三.四種 簡單的數(shù)據(jù)類型? 如果出現(xiàn)了空值的現(xiàn)象 要求摸個參數(shù)必須有
//1.使用對象類型作為參數(shù)
//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";
}
//第五種 對象類型的參數(shù)接收
//RequestParam:接收的參數(shù)名? --簡單的域模型方式
@RequestMapping("demo5")
public String demo5(Student s){
System.out.println(s);
return "main.jsp";
}
//第六種 集合的簡單數(shù)據(jù)類型參數(shù)接收
//RequestParam:接收的參數(shù)名? --簡單的域模型方式
@RequestMapping("demo6")
public String demo6(@RequestParam("hover")List<String> abc){
System.out.println(abc);
return "main.jsp";
}
//第七種 對象中對象類型(單個對象,集合)的參數(shù)接收
//RequestParam:接收的參數(shù)名? --簡單的域模型方式
@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";
}