一、ibatis一对多关联配置
举例:候选人,候选人包含若干个教育经历,候选人表和教育经历表示外键关联的关系。
候选人javaBean:
public class EXCandidate {
//邮箱
public String email;
///教育经历
public List<EXCandidateSchool> schools;
}
教育经历javaBean:
public class EXCandidateCompany {
public int id;
// 公司名称
public String companyName;
// 职位
public String job;
// 入职时间
public Date joinTime;
// 离职时间
public Date awayTime;
// 候选人id
public int candidateId;
}
查询候选人时的注解配置:
@Select("select * from EX_Candidate")
@Results({ @Result(id = true, property = "id", column = "id"),
@Result(property = "email", column = "email"), @Result(property = "openid", column = "openid"),
@Result(column = "id", property = "schools", many = @Many(select = "com.meritco.xsystem.expert.expert.dao.EXCandidateSchoolDao.selectByCandidateId"))})
List<EXCandidate> getEXCandidateList();
查询教育经历对应的注解配置:
@Select("select * from EX_Candidate_School where candidateId=#{candidateId}")
@Results({ @Result(id = true, column = "id", property = "id"),
@Result(column = "schoolname", property = "schoolName"), @Result(column = "degree", property = "degree"),
@Result(column = "major", property = "major"), @Result(column = "graduatetime", property = "graduateTime"),
@Result(column = "candidateid", property = "candidateId") })
List<EXCandidateSchool> selectByCandidateId(Integer candidateId);
二、ibatis批量添加javaBean
假设javaBean如下:
public class EXAnswer {
public EXQuestion question;
public String answer;
public String openid;
}
批量添加的注解如下:
@Insert("<script> insert into EX_Answer (questionid,answer,openid) values "
+ " <foreach collection='c' item='item' separator=',' > "
+ " (#{item.question.id},#{item.answer},#{item.openid})\n" + " </foreach> </script>")
int batchInsert(@Param(value = "c") List<EXAnswer> c);