首页 > 其他 > 详细

MyBatis入参方式

时间:2020-04-28 09:09:31      阅读:53      评论:0      收藏:0      [点我收藏+]

1.传递单参数的形式

  MyBatis会自动进行参数的赋值

  如:

public  void  deletePerson(Integer id);  //接口
<!-- mapper配置文件-->
  <delete id="deletePerson" parameterType="int">

      delete from person where id=#{parameter1} <!-- #{}里面写任何值都能取到值-->
    
  </delete>

2.传递多个参数(mapper不会自动赋值)

  a.使用Map接口(不推荐)

public Person getPersonByNameAndGender(Map<String,Object> param);//接口
  <select id="getPersonByNameAndGender" resultType="person">

    select * from person where username=#{username} and gender=#{gender}
    
    <!--#{}里面填写Map的key值-->
  </select>

  b.使用javaBean(封装pojo类)传递参数(传递的参数多于5)

//将要传递的参数封装在一个对象中
public Person getPersonByNameAndGender(Person person);
  <select id="getPersonByNameAndGender" resultType="person">

    select * from person where username=#{username} and gender=#{gender}

    <!--#{}里填写person对象里面的属性-->
  </select>

  c.使用注解@param传递参数(传递的参数少于5)

public Person getPersonByNameAndGender(@Param("username") String username, @Param("gender") String gender);
  <select id="getPersonByNameAndGender" resultType="person">

    select * from person where username=#{username} and gender=#{gender}

  </select>

3.传递的参数是个collection、list、array

  使用注解@param

 public Person getPersonByCollection(@Param("test") int[] ids);
<select id="getPersonByCollection" resultType="person">

    select * from person where id=#{test[0]}
  </select>

  可使用foreach标签读取参数

public List<Person> getPersonsByIds(@Param("test")int[] ids);
  <select id="getPersonsByIds" resultType="person">

    select * from person where id in

    <foreach collection="test" item="id" index="i" open="(" close=")" separator=",">
      #{id}
    </foreach>

<!--collection表示选取的集合,item表示当前遍历的对象,index表示当前遍历的索引-->
<!--若test这个数组里面为test[]{1,2,3},则上面的sql语句相当于select * from person id in (1,2,3,4)-->
  </select>

 

MyBatis入参方式

原文:https://www.cnblogs.com/shouyaya/p/12791309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!