Mybatis傳遞多參以及Springmvc傳遞多參

下面給大家總結了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";

}

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容