美文网首页
one2one.PersonMapper.xml

one2one.PersonMapper.xml

作者: 别叫我小新 | 来源:发表于2018-09-08 10:39 被阅读0次
    <?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">
    <!-- 这里要写IUserDao的路径哦 -->
    <mapper namespace="com.qianfeng.one2one.IPersonDao">
        
        <!-- type就是,在mybatis里起的别名,实际上是这个实体类额类名+包名 
            这个id就是起的映射的名字,随便起也无所谓,只要后面的增删改查用到的话,吧名字写一样就ok
            id主键,column数据库对应字段名
         -->
        <resultMap type="Person" id="personMap">
            <id property="pid" column="pid"/>
            <!-- 其他字段的映射关系 -->
            <result property="pname" column="pname"/>
            
            <!-- 
                实际上这里还是属性的映射,和上面哪些result是一样的东西,不过就是个嵌套查询,
                property是要传来的参数,这个参数是实体类中必须要有的,现在这个card就是实体类中的
                javaType就是刚才那个property的类型,类型!懂么!就好比集合的类型是java.util.ArrayList懂?
                        现在这玩意就是card属性的,实体类的位置,ok?
                column就是在数据库里的字段名,不对,应该是关联的字段名吧,两个表之间的关联,
                        就是这个cid,会传给下面的select对应的方法中,这个cid就是下面的select需要的参数!
                fetchType 是否懒加载,默认lazy懒加载,eager 非懒加载,这里就不用懒加载了
                嵌套查询就会有必定select
             -->
            <association property="card"
                javaType="com.qianfeng.one2one.Card"
                column="cid"
                select="com.qianfeng.one2one.ICardDao.findById"
                fetchType="eager"
            ></association>
        </resultMap>
        
        <resultMap type="Person" id="personMap2">
            <id property="pid" column="pid"/>
            <!-- 其他字段的映射关系 -->
            <result property="pname" column="pname"/>
            
            <!-- 嵌套结果查询 自己手动写sql语句,多表查询,一句话全部搞定 
            resultMap 指定如何处理关联的数据, 命名空间+resultMap的id
            这个就是指向了cardMapper.xml里面的resultMap映射了,直接找到里面的Card试题和数据库的映射关洗,
            这个方法比较快捷吧,也推荐这种用发吧,这个就只用了一句sql,简单!
            -->
            <association property="card" resultMap="com.qianfeng.one2one.ICardDao.cardMap"></association>
        </resultMap>
        
        <select id="findById" parameterType="int" resultMap="personMap">
            select * from t_person where pid=#{id}
        </select>
        
        <select id="findById2" parameterType="int" resultMap="personMap2">
            select * from t_person p
            inner join t_card c
            on p.cid=c.cid
            where p.pid=#{pid}
        </select>
        
    </mapper>```
    详细的说明都写了,自己看看吧,配合经一个one2one.CardMapper.xml看

    相关文章

      网友评论

          本文标题:one2one.PersonMapper.xml

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