• 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') 
    复制代码

     

          

        
          

  • 相关阅读:
    Hadoop环境搭建2_hadoop安装和运行环境
    Hadoop环境搭建1_JDK+SSH
    Linux5_环境变量
    Linux4_文件操作
    Linux3_文件系统
    Linux2_小技巧
    Linux1_Ubuntu的安装
    PhoneGap移动开发框架
    iOS 使用GitHub托管代码(github desktop使用)
    MRC和ARC混编
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/6869078.html
Copyright © 2020-2023  润新知