zoukankan      html  css  js  c++  java
  • Mybatis参数总结(转载)

    转载自:

    MyBatis传入多个参数的问题

    mybatis传递参数总结

     

    一、单个参数

    1、基本数据类型

    (1)直接使用

    List<ChargeRuleDO> tests(long id);
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{id}
          </select>
          #{}中的参数名与方法中的参数名一致

    (2)使用注解       

    List<ChargeRuleDO> tests(@Param("aid") long bid);
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{aid}
          </select>
          #{}中的参数名与方法中的@Param()里的参数名一致

    2、复杂数据类型(这里主要是指java实体类)

    (1)直接使用

    List<ChargeRuleDO> tests(TestQO testQO);
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{id} and t.rule_type=#{ruleType}
          </select>
          #{}中的参数名与方法中的参数的属性名一致

    (2)使用注解

    List<ChargeRuleDO> tests(@Param("atestQO") TestQO btestQO); 
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{atestQO.id} and t.rule_type=#{atestQO.ruleType}
          </select>
          #{}中的参数名与方法中的@Param()里的参数对应的属性名一致,而且必须写成"#{atestQO.id}"的格式,不能简写成"#{id}".

    二、多个参数

    1、基本数据类型

    (1)直接使用

    List<ChargeRuleDO> tests(long id,String ruleType); 
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{0} and t.rule_type=#{1}
          </select>
          这里改用#{index},其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。

    (2)使用注解

    List<ChargeRuleDO> tests(@Param("id") long id,@Param("ruleType") String ruleType);
          <select id="tests" resultType="com.xxx.bean.ChargeRuleDO">
            select * from t_charge_rule t where t.id = #{id} and t.rule_type=#{ruleType}
          </select> 
          #{}中的参数名与方法中的@Param()里的参数名一致

     

    三、Map封装多参数:  

    复制代码
    public List<XXXBean> getXXXBeanList(HashMap map);  
    
    <select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
    
      select 字段... from XXX where id=#{xxId} code = #{xxCode}  
    
    </select>  
    
    其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。 
    复制代码

     四、List封装in:

    复制代码
    public List<XXXBean> getXXXBeanList(List<String> list);  
    
    <select id="getXXXBeanList" resultType="XXBean">
      select 字段... from XXX where id in
      <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
        #{item}  
      </foreach>  
    </select>  
    
    foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4') 
    复制代码

     

          

        
          

  • 相关阅读:
    python之内置函数
    装饰器原理剖析
    迭代器&生成器&yield异步
    python之文件操作read
    函数的创建,调用,返回值和传参的讲解
    collections之deque【双向队列】与Queue【单向队列】
    collections之命名元组
    collections系列之OrderedDict【有序字典】与DefaultDict【默认字典】
    collections系列之Counter
    对象之int介绍
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/6869078.html
Copyright © 2011-2022 走看看