zoukankan      html  css  js  c++  java
  • mybati之parameterType传递多个参数

    mybati之parameterType传递多个参数

     
    mybati之parameterType传递多个参数

    当在查询的时候需要传入多个参数的时候该怎么办呢:


    1,封装成一个Model对象,底层HashMap还是一个

    [java] view plain copy
     
    1. User user=new User();  
    2.   
    3. user.setUserName("zhangsan");  
    4.   
    5. user.setPassword("123456");  
    6.   
    7. queryUserByuserNameAndPass(user);//为返回值类型为User  

    [html] view plain copy
     
    1. <select id="queryUserByuserNameAndPass"  resultType="User" parameterType="com.j1.User"  >  
    2.   
    3.        select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}  
    4.   
    5. </select>  


    2,使用HashMap封装

    [java] view plain copy
     
    1. //使用HashMap定义:  
    2.   
    3. HashMap <String,Object> map=new HashMap<String,Object>();  
    4.   
    5. map.put("userName","zhangsan");  
    6.   
    7. map.put("password","123456");  
    [java] view plain copy
     
    1. queryUserByuserNameAndPass(map);//为返回值类型为User  

    [html] view plain copy
     
    1. //sql 如下:  
    2.   
    3. <select id="queryUserByuserNameAndPass"  resultType="User"  parameterType="Map" >  
    4.   
    5. select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}  
    6.   
    7. </select>  

    3,使用注解,@param
    [java] view plain copy
     
    1. queryUserByuserNameAndPass(@param(''userName")String userName,@param("password")String password)  

    [html] view plain copy
     
    1. <select id="queryUserByuserNameAndPass"  resultType="User">  
    2.   
    3. select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}  
    4.   
    5. </select>  

    [html] view plain copy
     
    1. queryUserByuserNameAndPass(String userName,String PassWord);  //返回值类型为Usre    
    2. //sql  
    3.   
    4. <select id="queryUserByuserNameAndPass"  resultType="User">  
    5. select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}//会报错的  
    6. </select>  
    7.   
    8. <select id="queryUserByuserNameAndPass"  resultType="User">  
    9. select * from user u where u.user_name=#{0} and u.pass_word=#{1}//运行成功但是,可读性不高  
    10. </select>  
    11.   
    12. //parameterType 参数类型可以是基本数据类型(int,String,long),可以是Model对象,也可以是Map;  
    13.   
    14. 1,基本数据类型:  
    15.   
    16. @Override  
    17. public void deleteUserById(Long id) {  
    18. SqlSession sqlSession = sqlSessionFactory.openSession(true);  
    19. sqlSession.delete("cn.itcast.mybatis.user.deleteUserById", id);  
    20. }  
    21.   
    22. //sql  
    23. <delete id="deleteUserById" parameterType="java.lang.Long">  
    24.       DELETE FROM tb_user WHERE id = #{id}  
    25. </delete>  
    26.    
    27.   
    28. 2,Model对象  
    29.   
    30. //java代码:  
    31. @Override  
    32. public void saveUser(User user) {  
    33. SqlSession sqlSession = sqlSessionFactory.openSession(true);  
    34. sqlSession.insert("cn.itcast.mybatis.user.saveUser", user);  
    35. }  
    36.   
    37. @Override  
    38. public void updateUser(User user) {  
    39. SqlSession sqlSession = sqlSessionFactory.openSession(true);  
    40. sqlSession.update("cn.itcast.mybatis.user.updateUser", user);  
    41. }  
    42.   
    43. //sql  
    44. <update id="updateUser" parameterType="cn.itcast.mybatis.pojo.User">  
    45. UPDATE tb_user  
    46. SET  
    47. password = #{password},  
    48. name = #{name},  
    49. age = #{age},  
    50. sex = #{sex},  
    51. birthday = #{birthday},  
    52. updated = NOW()  
    53. WHERE  
    54. id = #{id};  
    55. </update>   
    56.   
    57. 3.map  
    58.   
    59. //java  
    60. HashMap <String,Objectmap=new HashMap<String,Object>();  
    61. map.put("userName","zhangsan");  
    62. map.put("password","123456");  
    63. queryUserByuserNameAndPass(map);//为返回值类型为User  
    64.    
    65. //sql 如下:  
    66.   
    67. <select id="queryUserByuserNameAndPass"  resultType="User">  
    68.   
    69. select * from user u where u.user_name=#{userName} and u.pass_word=#{passWord}//  
    70.   
    71. </select>  
  • 相关阅读:
    js中的回调函数的理解和使用方法
    js循环的总结
    jquery选择器
    Jquery的命名冲突
    ul+li标签制作表格
    MyEclipse代码提示功能和自动提示功能
    a configuration error occured during startup.please verify the preference field with the prompt:
    MyEclipse2014,java文件无法编译,run as上是none applicable,不是文件本身的问题
    Myeclipse自定义注释
    Run As none applicable
  • 原文地址:https://www.cnblogs.com/erma0-007/p/8647428.html
Copyright © 2011-2022 走看看