当mapper对应的dao层方法需要参数时,只有一个参数可以不加@Param(“形参”),方法会自己给一个和与变量名相同的形参:
eg:int insert(User record);
但是当方法需要多个参数时,一定要在每个参数前加@Param(“形参”),这样才能mybatis才会避免Parameter ‘xxx’ not found的问题,同时如果参数为对象时,mapper里面的sql语句调用对象属性时也应使用 形参名.属性:
eg:
dao层方法:List selectByTeacherId(@Param(“student”)User student,@Param(“ts”)TeacherAndStudent ts,
@Param(“d”)Department d,@Param(“p”)Profession p,@Param(“c”)Clazz c);
对应的mapper:
select count(*) from user
u,department_profession_class
dpc,department
d,profession p,clazz
c,teacher_student ts where u.a_id =
ts.ts_studentid and dpc.id= u.a_dpc and dpc.did =d.d_id and dpc.pid =
p.p_id and dpc.cid = c.c_id and
ts_teacherid =
#{ts.tsTeacherid} and 1=1
and ts.ts_join = #{ts.tsJoin
}
and u.a_username = #{student.aUsername
}