mybatis 框架的主要工作是数据访问层, 侧重于与数据库打交道的sql语句的编写,要求对SQL也要求比较熟练。mybatis 传递参数的方式主要有如下⑤种:
![c0196b72c3fb2747be1a9c0b8e7f513e.png](https://img-blog.csdnimg.cn/img_convert/c0196b72c3fb2747be1a9c0b8e7f513e.png)
第①种:单个参数传递方式
EmpMapper.java
public interface EmpMapper { /** * 根据雇员编号查询雇员信息 * @param empno * @return */ Emp queryEmpByEmpno(int empno);}
EmpMapper.xml
select * from emp where empno = #{empno}
注明:单个参数parameterType可不写,sql语句中#{empno}可以写#{任意名称}。
第②种:多个参数传递方式
EmpMapper.java
public interface EmpMapper { /** * 根据雇员工作或部门编号查询雇员信息 * @param job * @param deptno * @return */ List queryEmpListByJobOrDeptno(String job,int deptno);}
EmpMappper.xml
select * from emp where job = #{arg0} or deptno = #{arg1} ------或者--------- select * from emp where job = #{param1} or deptno = #{param2}
注明: #{arg0} 代表的是第一个参数,#{arg1} 代表的是第二个参数;#{param1} 代表的是第一个参数,#{param2} 代表的是第二个参数,以此类推。
第③种:固定参数传递方式
EmpMapper.java
public interface EmpMapper { /** * 据雇员工作或薪资查询雇员信息 * @param job * @param sal * @return */ List queryEmpListByJobOrSal(@Param("job") String job, @Param("sal") BigDecimal sal);}
EmpMapper.xml
select * from emp where job = #{job} or sal = #{sal}
注明:此种方式对于参数来说就比较直观
第④种:map的参数传递方式
EmpMapper.java
public interface EmpMapper { /** * 根据条件查询雇员信息 * @param map * @return */ List queryEmpListBy(Map map);}
EmpMapper.xml
select * from emp where job = #{job} or sal = #{sal}
测试
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);Map map = new HashMap();map.put("job","salesman");map.put("sal",new BigDecimal("3000"));List empList = empMapper.queryEmpListBy(map);
注明:此种方式以map的形式来传入需要的参数,当参数较多时,使用此种方式比较方便。
第⑤种:实体传输参数方式
EmpMapper.java
public interface EmpMapper { /** * 根据条件查询雇员信息 * @param emp * @return */ List queryEmpListByEmp(Emp emp);}
EmpMapper.xml
select * from emp where job = #{job} or sal = #{sal}
测试
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);Emp emp = new Emp();emp.setJob("salesman");emp.setSal(new BigDecimal("3000"));List empList = empMapper.queryEmpListByEmp(emp);
在mybatis相关的实际项目开发中使用如上几种方式比较常用,你学会了吗?谁在最需要的时候轻轻拍着我肩膀,谁在最快乐的时候愿意和我分享。我是一个包夜敲代码,想靠技术苟且的程序员。如果觉得有点用的话,请毫不留情地关注、点赞、转发。这将是我写出更多优质文章的最强动力!
![4cee79d413eae4734c5eac895c7a5173.png](https://img-blog.csdnimg.cn/img_convert/4cee79d413eae4734c5eac895c7a5173.png)