<selectid="selectStudentById"resultType="org.example.domain.Student" > select id, name, email, age from student where id = #{studentId} </select>
可以看到,接口中方法参数名是id,映射文件中是studentId,并不相同。
多个参数-使用@Param(掌握)
当需要传入多个参数时,可以使用MyBatis提供的@Param注解。
使用方法:
DAO接口定义的方法中,在形参定义之前加上@Param(“自定义形参数名”)
在映射文件中,占位符#{@Param定义的参数名}使用同样的名称来访问该参数
非常简单。
例子: 在DAO接口中定义方法:
1 2
public List<Student> selectStudentsByParams(@Param("studentName") String name, @Param("studentId") Integer id);
在映射文件中编写具体sql语句:
1 2 3
<selectid="selectStudentsByParams"resultType="org.example.domain.Student" > select id, name, email, age from student where name = #{studentName} or id = #{studentId} </select>
public List<Student> selectStudentsByParams(String name, Integer id);
映射文件:
1 2 3
<selectid="selectStudentsByParams"resultType="org.example.domain.Student" > select id, name, email, age from student where name = #{arg0} or id = #{arg1} </select>
public List<Student> selectStudentsByParams(Map<String, Object> map);
映射文件:
1 2 3
<selectid="selectStudentsByParams"resultType="org.example.domain.Student" > select id, name, email, age from student where name = #{StudentName} or id = #{StudentId} </select>