作用
简化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);
结果: