根据给定的job、deptno查询符合条件的员工信息
根据给定的多个empno查询员工信息
EmpDao
package dao;import domain.Dept;import domain.Emp;import dynamic.EmpDynamic;import org.apache.ibatis.annotations.*;import java.util.List;public interface EmpDao {//根据给定的job、deptno查询符合条件的员工信息//type用于动态拼接方法的类名,method为调用方法名@SelectProvider(type = EmpDynamic.class,method = "provideSql")//使用默认方法名(一个方法)写法EmpDynamic.class就可以public List<Emp> selectEmpsByJobAndDeptno(@Param("job")String job,@Param("deptno")Integer deptno);//根据给定的多个empno查询员工信息@SelectProvider(type = EmpDynamic.class,method = "provideSql1")public List<Emp> selectEmpsByEmpno(@Param("empnos")Integer... empnos);}
EmpDynamic
package dynamic;import org.apache.ibatis.annotations.Param;import java.util.List;public class EmpDynamic {//一个普通方法,用于动态拼接SQL//类名随意写//方法名(一个方法时)默认为provideSql(注解找时可省略),自己取的要做特殊告知public String provideSql(@Param("job")String job,@Param("deptno")Integer deptno){StringBuilder sb=new StringBuilder();sb.append("select * from emp where 1 = 1");if(job!=null&&!"".equals(job)){sb.append(" and job = #{job}");}if(deptno!=null){sb.append(" and deptno = #{deptno}");}return new String(sb);}public String provideSql1(@Param("empnos")Integer... empnos){StringBuilder sb=new StringBuilder();sb.append("select * from emp where empno in (");for(Integer empno : empnos){sb.append(empno+",");}sb.delete(sb.length()-1,sb.length());sb.append(")");return new String(sb);}}
