MyBatis框架 注解

作用

简化mapper.xml文件
但是涉及到动态SQL依然需要使用mapper.xml文件
mapper.xml和注解可以共存

注解的声明

mybatis.xml中<mappers>使用
①<package/>
②<mapper class=""/>

注解的使用

定义在接口内部的方法上方,使用接口绑定直接使用
简单使用
如查询:@Select(“sql语句”)

/**
  * 查询vip表中所有内容
  * @return 表中数据
  */
 @ResultType(Vip.class)
 @Select("SELECT * FROM vip")
 public List<Vip> selAllVip();

结果:
在这里插入图片描述

resultMap多表查询(此处建议xml实现)

@Results(value={@Result(property="", column="",id=""
		@Result(property="",many=@Many(select="包名.类名.方法名"))
  })

Ps:
@Results相当于<resultMap>
@Result相当于<id>或<result>,以 true,false区分
@Many相当于<collection>
@one相当于<associatetion>

例:使用注解实现N+1查询

@Results(value = {@Result(property = "name", column = "name", id = false),
       		  @Result(property = "id", column = "id", id = true),
       		  @Result(property = "local", column = "local", id = false),
       		  @Result(property = "goods", many = @Many(select = "com.mfqh.mapper.AnnotationTest.selGoods"), column = "id")
 })
@Select("SELECT * FROM manufactory WHERE id = #{id}")
public Manufactory selManufactory(@Param("id")int id);

/**
  * 查询出对应的货物信息
  * @param id 工厂id
  * @return 货物信息
  */
@Select("SELECT * FROM goods WHERE produce=#{param1}")
public Goods selGoods(int id);

结果:
在这里插入图片描述

发布了82 篇原创文章 · 获赞 1 · 访问量 1456

猜你喜欢

转载自blog.csdn.net/qq_41891805/article/details/105101830