您的位置:首页 > 其它

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}’

因为是字符串,所以要加上引号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: