美文网首页
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