上次的内容主要是mybatis的大概介绍和简单使用,这次对mybatis中最为重要的映射器的开发
进行学习,映射器的开发组成占整个mybatis开发的百分之八十。
对于简单的映射关系,不再重复
1.在映射中传递多个参数
开发中所需要传递的查询条件很可能不止一个,因此就会涉及怎么去传入多个parametertype
方法1:使用map接口(可读性差,不推荐)
//在上一次的代码基础上进行修改
studentMapper studentMapper = sqlSession.getMapper(studentMapper.class);
Map<String, Object> map = new HashMap<>();
map.put("name", "doctorL");
map.put("number", "31501");
List<student> list = studentMapper.getpassword(map);
public List<student> getpassword(Map<String,Object> pa);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="student.mapper.studentMapper">
<select id="getpassword" parameterType="map" resultType ="student.pojo.student">
select password from student where studentName = #{name} and studentnumber = #{number}
</select>
</mapper>
2.使用@param注解
在使用注解是不需要给出parametertype的属性,mybatis会根据注解自动搜索
这个方法适用于传入参数大于1但不是很多的情况
studentMapper studentMapper = sqlSession.getMapper(studentMapper.class);
List<student> list = studentMapper.getpassword("doctorL","31501");
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="student.mapper.studentMapper">
<select id="getpassword" resultType ="student.pojo.student">
select password from student where studentName = #{name} and studentnumber = #{number}
</select>
</mapper>
mapper接口
public List<student> getpassword(@Param("name") String name , @Param("number") String number);
3.javabean的方式 需要传递的参数较多的情况
输入参数的pojo
package student.pojo;
public class parameter {
private String name ;
private String number ;
public parameter() {
super();
// TODO Auto-generated constructor stub
}
public parameter(String name, String number) {
super();
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
测试
studentMapper studentMapper = sqlSession.getMapper(studentMapper.class);
parameter pa = new parameter("doctorL", "31501");
List<student> list = studentMapper.getpassword(pa);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="student.mapper.studentMapper">
<select id="getpassword" parameterType="student.pojo.parameter" resultType ="student.pojo.student">
select password from student where studentName = #{name} and studentnumber = #{number}
</select>
</mapper>
public List<student> getpassword(parameter pa);