1、两个相互关联的对象
public class Classes {
private int id;
private String cname;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
public class Student {
private int id;
private String name;
private String sex;
private Classes classes;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
}
从student 中关联到class 对象
Student s = (Student)sqlMapper.queryForObject("findStudent", 1);
System.out.println(s.getName()+"属于班级:"+s.getClasses().getCname());
使用别名映射
<select id="findStudent" parameterClass="int" resultClass="Student"> select s.name, s.sex, s.cid as "classes.id", c.cname as "classes.cname" from t_student s,t_classes c where s.cid = c.id and s.id = #id# </select>
a插入的用点导航
<insert id="saveStudent" parameterClass="Student"> insert into t_student values (null,#name#,#sex#,#classes.id#) </insert>
b写两条sql使用resultMap映射
<resultMap class="Student" id="findStudent-result"> <result property="id" column="id"/> <result property="name" column="name"/> <result property="sex" column="sex"/> <result property="classes" column="cid" select="findClassesById"/> </resultMap> <select id="findStudent" parameterClass="int" resultMap="findStudent-result"> select * from t_student where id = #id# </select>
<select id="findClassesById" parameterClass="int" resultClass="Classes"> select * from t_classes where id = #cid# </select>
2、