情况:一个班级下面有多名学生
需求:查询该班级下面的所有学生
解决:首先分析属于数据库中的1:n的关系,外建一般维护在多的一方,所以每一个学生的记录中都含有一个class_id,我们可以通过class表 id查询到班级里的所有的学生。
下面上代码:
我的实例代码解决的是一个类图片库中可能包含多张图片,图片和图片类别的详细描述分别存储在两张表中,查询文档内容的同时查询出图片。
首先建一个扩展类最好放在新建的extend包下:
package com.muzi.museum.bean.extend;
import com.muzi.museum.bean.Type_picture;
import java.util.Date;
import java.util.List;
public class TypeeVM {
private Integer id;
private String typeName;
private Date createTime;
private Date updateTime;
private String createUser;
private String updateUser;
private String isDelete;
private String typeDescription;
private List<Type_picture> type_pictures;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
public String getUpdateUser() {
return updateUser;
}
public void setUpdateUser(String updateUser) {
this.updateUser = updateUser;
}
public String getIsDelete() {
return isDelete;
}
public void setIsDelete(String isDelete) {
this.isDelete = isDelete;
}
public String getTypeDescription() {
return typeDescription;
}
public void setTypeDescription(String typeDescription) {
this.typeDescription = typeDescription;
}
public List<Type_picture> getType_pictures() {
return type_pictures;
}
public void setType_pictures(List<Type_picture> type_pictures) {
this.type_pictures = type_pictures;
}
}
注意点:我们扩展的类中不仅包含的是 1这一方的成员变量,还需要将多的这一方的对象定义为一个list集合
相应的建我们的映射接口 在dao层
public interface TypeeVMMapper {
//查询所有的名俗类别
List<TypeeVM> selectAll();
}
最后在mybatis中的映射文件
<resultMap id="BaseResultMap" type="com.muzi.museum.bean.extend.TypeeVM" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="type_name" property="typeName" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="create_user" property="createUser" jdbcType="VARCHAR" />
<result column="update_user" property="updateUser" jdbcType="VARCHAR" />
<result column="is_delete" property="isDelete" jdbcType="CHAR" />
<collection column="id" property="type_pictures" select="selectPictureByTypeId" javaType="ArrayList"
ofType="com.muzi.museum.bean.Type_picture">
</collection>
</resultMap>
最重要的是将list集合映射为一个collection