zoukankan      html  css  js  c++  java
  • MyBatis探究-----传递参数详解

       1.单个参数

         mybatis不会做特殊处理,#{参数名/任意名}:取出参数值

         例如:接口中方法 public Employee getEmpById(String empId);

                    XML中 <select id="getEmpById" resultType="com.mybatis.entity.Employee">

                                      select * from t_employee where empId=#{empId}

                                </select>

        注意:List集合或数组需@Param指定参数名

       2.多个参数   

    2.1 不使用@Param  不推荐

        mybatis会做特殊处理,多个参数会被封装成 一个map

             key:param1...paramN,或者参数的索引也可以

             value:传入的参数值     

         #{key}取出对应的参数值 

        例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(String empName,Integer empSex);

                   XML中  <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

                                         select * from t_employee where empName=#{0} and empSex=#{1}
                                </select>

                                或者

                               <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

                                         select * from t_employee where empName=#{param1} and empSex=#{param2}
                               </select>

    2.2 使用@Param

         明确指定封装参数时map的key,多个参数会被封装成 一个map

              key:使用@Param注解指定的值

              value:参数值

         #{指定的key}取出对应的参数值

         例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(@Param("empName")String empName,@Param("empSex")Integer empSex);

                    XML中 <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

                                      select * from t_employee where empName=#{empName} and empSex=#{empSex}

                               </select>

    2.3 Map传参

         #{key}:取出map中对应的值

         例如:接口中方法 public List<Employee> getEmpsByempNameAndSex(Map<String, Object> map);

                    XML中 <select id="getEmpsByempNameAndSex" resultType="com.mybatis.entity.Employee">

                                     select * from t_employee where empName=#{empName} and empSex=#{empSex}

                                </select>

                    测试代码

                                Map<String, Object> map=new HashMap<>();

                                map.put("empName", "王昭君");

                                map.put("empSex", 0);

       3.Bean参数     

         如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo

         #{属性名}:取出传入的pojo的属性值

         例如:接口中方法 public Integer addEmployee(Employee employee);

                    XML中 <insert id="addEmployee" parameterType="com.mybatis.entity.Employee">

                                   insert into t_employee(empId,empName,empSex,empAge) values(#{empId},#{empName},#{empSex},#{empAge})

                                </insert>

  • 相关阅读:
    浅谈模块化开发
    用gulp搭建并发布自己的cli脚手架
    取值运算符新用法
    vue双向绑定之简易版
    获取对象属性之括号方式
    前端格式化工具之Prettier
    git操作之摘樱桃
    Sort
    MongoDB
    项目使用本地的包
  • 原文地址:https://www.cnblogs.com/fengfuwanliu/p/10591405.html
Copyright © 2011-2022 走看看