1、直接在方法中传递参数
在接口方法的参数前加 @Param属性
Sql语句编写的时候,直接取@Param中设置的值即可,不需要单独设置参数类型
@Select("select * from teacher where tname=#{tname}")
List<Teacher> getTeachersList1(@Param("tname") String name);
2、使用万能的Map
在接口方法中,参数直接传递Map;
编写sql语句的时候,需要传递参数类型,参数类型为map
@Select("select * from student where sname=#{sname} or sname=#{sname1}")
List<Student> getStudentList2(Map<String,Object> map);
在使用方法的时候,Map的 key 为 sql中取的值即可,没有顺序要求!
Map<String, Object> map = new HashMap<String, Object>();
map.put("sname","周梅");
map.put("sname1","李云");
List<Student> students = mapper.getStudentList2(map);
当使用xml文件sql时,配置map
<select id="getStudentList2" parameterType="map" resultType="com.kang.pojo.Student">
select * from student where sname=#{sname} or sname=#{sname1}
</select>
总结:如果参数过多,我们可以考虑直接使用Map实现,如果参数比较少,直接传递参数即可
3、like 模糊查询
(1)通配符作为参数传递
List<Student> list = studentDao.getStudentLike("%kang%");
(2)在sql中进行字符串拼接通配符,可能造成sql注入