Person{id=null, name='null', age=null, sex='null', idCard=IdCard{id=2, code='null'}}
因果关系呢,这个是后台打印的吗
一般这种情况,先检查一下自己的Person类,如果用来private来修饰属性,是否有get set,toString方法,以及有无参构造函数
还有就是如果你用到了数据库,检查一下,有没有做好表字段和属性之间的映射关系,如果还没找到原因就把你的代码发出来
上代码
person类
public class Person {
private Integer id;
private String name;
private Integer age;
private String sex;
private IdCard idCard;//个人关联的身份证实例
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public IdCard getIdCard() {
return idCard;
}
public void setIdCard(IdCard idCard) {
this.idCard = idCard;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", idCard=" + idCard +
'}';
}
PersonMapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gly.mybatis.mapper.PersonMapper">
<resultMap id="personMap1" type="Person">
<id property="id" column=" id" />
<result property="name" column=" name" />
<result property="age" column=" age" />
<result property="sex" column=" sex" />
<!--嵌套查询-->
<!-- 一对一使用servlet属性应用另外一条sql语句-->
<association property="idCard" column="card_id" javaType="idcard"
select="com.gly.mybatis.mapper.IdCardMapper.findCodeById"/>
</resultMap>
<select id="findPersonById" parameterType="Integer" resultMap="personMap1">
select * from t_person where id = #{id}
</select>
<!--嵌套结果-->
<resultMap id="personmap2" type="Person">
<id property="id" column=" id" />
<result property="name" column=" name" />
<result property="age" column=" age" />
<result property="sex" column=" sex" />
<!-- 一对一,使用嵌套结果-->
<association property="idCard" javaType="idcard">
<id property="id" column="card_id"/>
<result property="code" column=" code" />
</association>
</resultMap>
<select id="findPersonById2" parameterType="Integer" resultMap="personmap2">
select p.*,c.code from t_person p,t_idcard c where
p.card_id = c.id and p.id=#{id}
</select>
</mapper>