mybatis 框架的主要工作是数据层, 侧重于与数据库打交道的sql语句的编写,对sql也要求比较熟练。
今天在进行数据层面交互的过程当中出现了不少问题,主要还是对mybatis传递参数的方式不太清楚。故对知识点进行了一下梳理。
方式一 多参传递
示例:
FormAMapper.java
public FormA functionA(String id, String name);
------------------------
FormAMapper.xml
<select id="functionA" resultType="classA">
select * from A where id=#{0} and name= #{1}
</select>
PS: #{0}代表第一个参数,#{1}代表第二个参数,,,,
方式二 固定参数传递
示例:
FormBMapper.java
public FormB functionB(@Param("id")String id,@Param("name")String name);
------------------------
FormBMapper.xml
<select id="functionB" resultType="FormB">
select * from B where id=#{id} and name=#{name}
</select>
方式三 以Map的形式进行传递
示例
FormCMapper.java
public FormC functionC(Map map);
------------------------
FormCMapper.xml
<select id="functionC" resultType="FormC">
select * from FormC where id=#{id} and name=#{name}
</select>
------------------------
FormCService.java
public FormC functionC(Map map);
------------------------
FormCServiceImpl.java
Map map = new HashMap();
map.put("id",1);
map.put("name","xiaoming");
FormC formc = formCService.functionC(map);
return formc;
PS: 当传入参数较多时,使用此种方式比较方便。