Movice.java:
public class Movice {
private int mid;
private String mname;
private MoviceType moviceType;
public Movice(int mid, String mname, MoviceType moviceType) {
this.mid = mid;
this.mname = mname;
this.moviceType = moviceType;
}
public Movice() {
}
public int getMid() {
return mid;
}
public void setMid(int mid) {
this.mid = mid;
}
public String getMname() {
return mname;
}
public void setMname(String mname) {
this.mname = mname;
}
public MoviceType getMoviceType() {
return moviceType;
}
public void setMoviceType(MoviceType moviceType) {
this.moviceType = moviceType;
}
@Override
public String toString() {
return "Movice{" +
"mid=" + mid +
", mname='" + mname + '\'' +
", moviceType=" + moviceType +
'}';
}
}
MoviceType.java:
public class MoviceType {
private int typeid;
private String typename;
private List<Movice> movices;
public MoviceType(int typeid, String typename, List<Movice> movices) {
this.typeid = typeid;
this.typename = typename;
this.movices = movices;
}
public MoviceType() {
}
public int getTypeid() {
return typeid;
}
public void setTypeid(int typeid) {
this.typeid = typeid;
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
public List<Movice> getMovices() {
return movices;
}
public void setMovices(List<Movice> movices) {
this.movices = movices;
}
@Override
public String toString() {
return "MoviceType{" +
"typeid=" + typeid +
", typename='" + typename + '\'' +
", movices=" + movices +
'}';
}
}
MoviceMapper.xml:
<?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">
<!--namespace命名空间,namespace必须为长类名-->
<mapper namespace="com.wance.mapper.MoviceMapper">
<resultMap id="MoviceResultMap" type="Movice">
<id property="mid" column="mid"/>
<result property="mname" column="mname"/>
<!--column为外键属性 -->
<association property="moviceType" column="typeid" javaType="MoviceType">
<id property="typeid" column="typeid"/>
<result property="typename" column="typename"/>
</association>
</resultMap>
<select id="findLasttestMovice" resultMap="MoviceResultMap">
select movie.*,movietype.typename from movie,movietype where movie.typeid=movietype.typeid and mid=(SELECT MAX(mid) from movie)
</select>
</mapper>
MoviceTypeMapper.xml:
<?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">
<!--namespace命名空间,namespace必须为长类名-->
<mapper namespace="com.wance.mapper.MoviceTypeMapper">
<resultMap id="MoviceTypeResultMap" type="MoviceType">
<id property="typeid" column="typeid"/>
<result property="typename" column="typename"/>
<collection property="movices" fetchType="lazy" ofType="Movice" select="findMovieByid" column="typeid">
<id property="mid" column="mid"/>
<result property="mname" column="mname"/>
</collection>
</resultMap>
<!--查找单表 -->
<select id="findById" parameterType="int" resultMap="MoviceTypeResultMap">
select * from movietype where typeid=#{typeid}
</select>
<!--根据typeid,查找movie表 -->
<select id="findMovieByid" parameterType="int" resultType="Movice">
select * from movie where typeid=#{typeid}
</select>
</mapper>
collection标签:
<!--
select:
指定关联查询的查询statement
即根据商品分类ID查询商品的statement的id
然后将查询结果封装到property属性指定的变量中
column:
指定列的值作为
com.ielm.mapper.ProductMapper.getByCategoryId()的查询参数
-->
<collection property="productList"
select="com.ielm.mapper.ProductMapper.getByCategoryId"
column="category_id"
/>