zoukankan      html  css  js  c++  java
  • Mybatis_一对一查询

    一对一是一种特殊的多对一。

    一般箭头所指的方向,是一,背对箭头的是多。

    由于身份证表的人员编号即使主键也是外键,所以这是一对一的关系。pk是主键,fk是外键。

    在Person.java类中添加一行 private IdCard ic; 并生成setter getter。

    xml在PersonMapper中写

        <!-- 一对一查询
            association:一对一和多对一的时候用
            property:多对一中“一”的那个属性名
            javaType:property中那个变量的数据类型
        -->    
        <resultMap type="xxx.x.Person" id="selectIdCardByPersonIdRM" extends="BaseResultMap">
            <association property="ic" javaType="xxx.x.model.IdCard">
                <id column = "person_id" property = "personId" />
                <result column = "card_no" property = "cardNo" />
            </association>
        </resultMap>
        <select id="selectIdCardByPersonId" parameterType="int" resultMap="selectIdCardByPersonIdRM">
            select * from person p, id_card ic where p.PERSON_ID = ic.PERSON_ID and p.PERSON_ID = #{personId}
        </select>
        SqlSessionFactory sessionFactory;
        public void setUp() throws Exception {
            InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
            sessionFactory = new SqlSessionFactoryBuilder().build(in);
        }
        public void selectIdCardByPersonId() {
            // 创建SqlSession
            SqlSession session = sessionFactory.openSession();
            try {
                Person person = session.selectOne("xxx.x.mapper.OrdersMapper.selectIdCardByPersonId", 1);
                System.out.println(person);
            } catch (Exception e) {
                e.printStackTrace();
                session.rollback();
            } finally {
                session.close();
            }
        }

    都和多对一一样

  • 相关阅读:
    C/C++位域(Bitfields)之我见(不错)
    C/C++位域(Bitfields)之我见(不错)
    C语言面试题之一——程序阅读题
    Matlab数据导入导出
    C语言大小端判断程序
    Qt——路径设置问题
    C语言大小端判断程序
    Qt——路径设置问题
    poj3625
    poj3660
  • 原文地址:https://www.cnblogs.com/lonske/p/9019721.html
Copyright © 2011-2022 走看看