示例:测试一对一关联
程序清单:com.mapper.PersonMapper.java
package com.mapper;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.mapping.FetchType;
import com.po.Person;
public interface PersonMapper {
@Select("select * from t_person where id=#{id}")
@Results({
@Result(id=true,column="id",property="id"),
@Result(column="name",property="name"),
@Result(column="cid",property="card",
one=@One(select="com.mapper.CardMapper.getCardById",
fetchType=FetchType.EAGER))
})
Person getPersonById(Integer id);
}
程序清单:com.mapper.CardMapper.java
package com.mapper;
import org.apache.ibatis.annotations.Select;
import com.po.Card;
public interface CardMapper {
@Select("select * from t_card where id=#{id}")
Card getCardById(Integer id);
}
程序清单:com.po.Person.java
package com.po;
public class Person {
private Integer id;
private String name;
private Card card;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", card=" + card + "]";
}
}
程序清单:com.po.Card.java
package com.po;
public class Card {
private Integer id;
private String code;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String toString() {
return "Card [id=" + id + ", code=" + code + "]";
}
}
程序清单:/mybatis/src/mybatis-config.xml
<!-- 配置Mapper的位置 -->
<mappers>
<mapper class="com.mapper.PersonMapper"/>
<mapper class="com.mapper.CardMapper"/>
</mappers>
程序清单:com.dao.PersonDao.java
@Test
public void getPersonById() throws IOException {
session=getSqlSession();
PersonMapper pm=session.getMapper(PersonMapper.class);
Person person=pm.getPersonById(1);
System.out.println(person);
}
运行PersonDao的getPersonById()方法,控制台显示如下: