美文网首页
原生一对一级二级查询

原生一对一级二级查询

作者: _FireFly_ | 来源:发表于2020-11-12 10:30 被阅读0次

IDCard

package domain;

public class IDCard {

    //自有属性
    private String cardid;
    private String address;
    //为了根据身份证号查询 身份证和人的信息
    //多添加一个关联属性
    private Person person;

    public IDCard() {}
    public IDCard(String cardid, String address, Person person) {
        this.cardid = cardid;
        this.address = address;
        this.person = person;
    }

    @Override
    public String toString() {
        return "IDCard{" +
                "cardid='" + cardid + '\'' +
                ", address='" + address + '\'' +
                ", person=" + person +
                '}';
    }

    public String getCardid() {
        return cardid;
    }
    public void setCardid(String cardid) {
        this.cardid = cardid;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Person getPerson() {
        return person;
    }
    public void setPerson(Person person) {
        this.person = person;
    }

}

Person

package domain;

public class Person {

    //自有属性
    private Integer pid;
    private String pname;
    //关联属性 身份证号(身份证对象中的一个属性)
    private IDCard idcard;

    public Person() {}
    public Person(Integer pid, String pname, IDCard idcard) {
        this.pid = pid;
        this.pname = pname;
        this.idcard = idcard;
    }

    @Override
    public String toString() {
        return "Person{" +
                "pid=" + pid +
                ", pname='" + pname + '\'' +
                ", idcard=" + idcard +
                '}';
    }

    public Integer getPid() {
        return pid;
    }
    public void setPid(Integer pid) {
        this.pid = pid;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    public IDCard getIdcard() {
        return idcard;
    }
    public void setIdcard(IDCard idcard) {
        this.idcard = idcard;
    }

}

PersonService

public class PersonService {

    private PersonDao dao = new PersonDao();

    public Person selectOne(Integer pid){
        return dao.selectOne(pid);
    }
}

PersonDao

public class PersonDao {

    private SqlSession sqlSession = MyUtil.getSqlSession(true);

    //设计一个方法 根据一个人的pid 查询人+身份证的所有信息
    public Person selectOne(Integer pid){
        return sqlSession.selectOne("selectOne",pid);
    }
}

PersonMapper.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">
<mapper namespace="dao.PersonDao">

    <!--自己定义一个赋值的规则  id是整个赋值规则的名字 -->
    <resultMap id="selectPerson" type="domain.Person">
        <id property="pid" column="pid"></id>
        <result property="pname" column="pname"></result>
        <association property="idcard" javaType="domain.IDCard" select="selectIDCardForPerson" column="cardid"></association>
    </resultMap>
    <!--这个select标签是为了Person对象中的那个idcard属性再次查询用的-->
    <select id="selectIDCardForPerson" resultType="domain.IDCard">
        select * from idcard where cardid = #{cardid}
    </select>
    <!--=======================================================================-->
    <!--dao调用的是下面这个标签对应的语句-->
    <select id="selectOne" resultMap="selectPerson">
        select pid,pname,cardid from person where pid = #{pid}
    </select>
</mapper>

相关文章

  • 原生一对一级二级查询

    IDCard Person PersonService PersonDao PersonMapper.xml

  • J2EE进阶学习——Mybatis(七):高级映射 查询缓存

    对订单商品数据模型进行分析。 1.高级映射: 实现一对一、一对多、多对多查询延迟加载 2.查询缓存 一级缓存二级缓...

  • Mybatis缓存问题

    Mybatis在查询时会采用缓存机制,分为一级缓存和二级缓存,一级缓存默认就会开启,二级缓存需要配置才可以使用。 ...

  • Hibernate中有哪些缓存

    主要是一级缓存,二级缓存,查询缓存 : 一级缓存: 又称为session级别的缓存,hibernate每次提取数据...

  • 11|第十一课:Mybatis一级缓存与二级缓存以及整合Ehca

    一、历史回顾 (一)、历史回顾 二、Mybatis一级缓存与二级缓存 (一)、查询缓存 只有查询在有,增删改是没有...

  • Mybatis缓存

    mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。mybaits提供一级缓存,和二级缓存。 一级缓存 ...

  • hibernate 面试题集锦

    hibernate 的缓存机制: 分为一级缓存和二级缓存。一级缓存是session中的缓存,在执行一个查询...

  • mybatis----缓存

    查询缓存 mybaits提供了一级缓存和二级缓存,用于减轻数据压力,提高数据库性能。。 1.1 什么是一级缓存 我...

  • 原生一对多查询

    查询一个dept部门的部门信息和该部门下所有员工信息(这是一对多,一个部门下有多个员工) Emp Dept Dep...

  • 原生一对多查询

    查询一个emp员工的所有信息 包括员工所在部门信息 (这是一对一,一个员工只对应一个部门) 实体Emp 实体De...

网友评论

      本文标题:原生一对一级二级查询

      本文链接:https://www.haomeiwen.com/subject/znqavktx.html