mybatis传递参数
2014-03-07 10:06
267 查看
第一种=======================================================:
在Mapper接口中的方法定义:
public List<Emp> getEmpsByTerms(int empid,String empname,int depid,String depname);
对于对应的mapper.xml
<select id="getEmpsByTerms" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid
where e.empid = #{param1} or e.empname = #{param2} or d.depid = #{param3}
or d.depname = #{param4}]]>
</select>
如果是这样的话,mybatis会以empid,empname,depid,depname的顺序传入到#{param1},#{param2},#{param3},#{param4}
第二种=======================================================:
在Mapper接口中的方法:
public List<Emp> getEmpsByTerms(@Param("empid")int empid,@Param("empname")String empname,@Param("depid")int depid,@Param("depname")String depname);
对于对应的mapper.xml
<select id="getEmpsByTerms" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid
where e.empid = ${empid} or e.empname = ${empname} or d.depid = ${depid}
or d.depname = ${depname}]]>
</select>
如果是使用注解@Param来使用的话,那么在mapper.xml中使用${..}来使用参数
第三种=======================================================:
在mapper接口中的方法:
public List<Emp> getEmpsByTerms(Map terms);
对于对应的mapper.xml
<select id="getEmpsByTerms" parameterType="java.util.Map" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid where e.empid = ${empid} or d.depid = ${depid} ]]>
</select>
如果是使用map作为参数,那么使用${map的key}来作为传入参数
第四种=======================================================:
在mapper接口中的方法(传入的是一个对象):
public List<Emp> getEmpsByTerms(Emp emp);
对应的mapper.xml文件
<select id="getEmpsByTerms" parameterType="Emp" resultType="Emp">
<![CDATA[select * from emp e where e.empid = #{empid} or e.empname= #{empname} ]]>
</select>
注意:在使用${..}和#{..}的时候要注意一下,以上述第四种方法为例,
如果是使用#{..} ,那么sql语句应该是:
select * from emp e where e.empid = #{empid} or e.empname= #{empname}
但是如果是使用${...},那么sql语句应该是:
select * from emp e where e.empid = ${empid} or e.empname= ‘${empname}’
因为是字符串,所以要加上引号
在Mapper接口中的方法定义:
public List<Emp> getEmpsByTerms(int empid,String empname,int depid,String depname);
对于对应的mapper.xml
<select id="getEmpsByTerms" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid
where e.empid = #{param1} or e.empname = #{param2} or d.depid = #{param3}
or d.depname = #{param4}]]>
</select>
如果是这样的话,mybatis会以empid,empname,depid,depname的顺序传入到#{param1},#{param2},#{param3},#{param4}
第二种=======================================================:
在Mapper接口中的方法:
public List<Emp> getEmpsByTerms(@Param("empid")int empid,@Param("empname")String empname,@Param("depid")int depid,@Param("depname")String depname);
对于对应的mapper.xml
<select id="getEmpsByTerms" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid
where e.empid = ${empid} or e.empname = ${empname} or d.depid = ${depid}
or d.depname = ${depname}]]>
</select>
如果是使用注解@Param来使用的话,那么在mapper.xml中使用${..}来使用参数
第三种=======================================================:
在mapper接口中的方法:
public List<Emp> getEmpsByTerms(Map terms);
对于对应的mapper.xml
<select id="getEmpsByTerms" parameterType="java.util.Map" resultMap="empResult">
<![CDATA[select * from emp e join dep d on e.depid = d.depid where e.empid = ${empid} or d.depid = ${depid} ]]>
</select>
如果是使用map作为参数,那么使用${map的key}来作为传入参数
第四种=======================================================:
在mapper接口中的方法(传入的是一个对象):
public List<Emp> getEmpsByTerms(Emp emp);
对应的mapper.xml文件
<select id="getEmpsByTerms" parameterType="Emp" resultType="Emp">
<![CDATA[select * from emp e where e.empid = #{empid} or e.empname= #{empname} ]]>
</select>
注意:在使用${..}和#{..}的时候要注意一下,以上述第四种方法为例,
如果是使用#{..} ,那么sql语句应该是:
select * from emp e where e.empid = #{empid} or e.empname= #{empname}
但是如果是使用${...},那么sql语句应该是:
select * from emp e where e.empid = ${empid} or e.empname= ‘${empname}’
因为是字符串,所以要加上引号
相关文章推荐
- Mybatis传递多个参数
- mybatis传递参数总结
- mybatis 中sql语句传递多个参数
- 关于mybatis的传递参数报错Type handler was null on parameter mapping for property 'userId'.
- mybatis 传递一个参数,多个参数的应用
- MyBatis单个多个参数传递
- Mybatis使用注解版传递两个参数时如果保证传参数正确
- mybatis.net - 4 ISqlMapper 传递参数
- Mybatis传递多个参数
- ibatis 和mybatis中 >,<作为参数在ibatis传递时要注意 $值$
- Mybatis传递单个参数判空,需要在参数前加@Param参数绑定
- Mybatis中模糊查询时相关的参数传递及xml配置
- mybatis 参数传递总结
- MyBatis 使用foreach与其他方式的时候参数传递方式
- 【Mybatis】多参数传递
- myBatis,mapper查询方法参数传递出错
- MyBatis传递参数的3种方式
- mybatis 使用一个参数传递数值 sql主要是使用到 in
- Mybatis传递多个参数
- mybatis查询嵌套之参数传递