mybatis中的映射关系

2025-10-24 06:11:35

1、mybatis中使用的代理模式,dao接口与mapper文件的关系,就是代理关系,dao接口内只有方法,而具体的实现依赖mapper文件

例如:dao接口内的方法: public  List  findAll();

mapper内的实现:

mybatis中的映射关系

2、id对应的是接口内的方法 ,resultType 返回值类型,resultMap返回的是集合

<select id="findAll" resultMap="profitMap">  select p.storePhone,p.number,s.id,s.name,s.price,s.percent from profit p,seed s  where p.seedId=s.id; </select>

<resultMap type="Profit" id="profitMap">  <result column="storePhone" property="storePhone"/>  <result column="number" property="number"/>  

mybatis中的映射关系

3、一对一关系对应使用association,property对应实体对象的属性,javatypejava类型,column 对应的一对一的一个键值;

<association property="seed" javaType="Seed" column="seedId">   <id column="id" property="id"/>   <result column="name" property="name"/>   <result column="price" property="price"/>   <result column="percent" property="percent"/>  </association> </resultMap>

mybatis中的映射关系

1、也可以这样

<association property="seed"  column="seedId">   select="包路径.SeedMapper.id属性" </resultMap>

mybatis中的映射关系

2、property属性代表映射带pojo属性上,select配置是命名空间+sql id的形式,这样便可以指向mapper的sql,mybatis就会通过对应的sql将数据查询出来了,column代表的sql列,用作参数传递给select属性指定的sql,如果有多个参数可以使用逗号隔开;

mybatis中的映射关系

3、<discriminator>元素,鉴别器,

<discriminator javaType="int" column="flag">    <case value="0" resultType="seed"></case>    <case value="1" resultType="seed2"></case>   </discriminator>

mybatis中的映射关系

4、column代表的是使用那个字段进行鉴别,这里使用的flag进行鉴别;他的子元素case用于区分,类似与java中的switch ... case ...  语句

mybatis中的映射关系

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢