MyBatis框架使用笔记-4(注解)

文章目录

  • 1.概述
  • 2.CRUD注解
  • 3.resultMap注解
  • 4.配置

1.概述

对于一些简单的sql语句,配置mapper.xml文件是比较麻烦的。myBatis提供了注解方式来实现mapper.xml的功能。

  • P.S.1.mapper.xml文件与注解是可以共存的。
  • P.S.2.如果需要使用动态sql那还是需要配置mapper.xml

2.CRUD注解

定义一个Mapper接口,然后在相应的方法上写上注解,注解的值为具体的sql语句。和mapper.xml的标签类似,myBatis提供了select、update、delete、insert四种标签。

public interface AirportMapper {

    /**
     * 查找所有起飞机场
     * @return
     */
    @Select("select * from airport where id in (select distinct take_airport_id from airplane)")
    List<Airport> selectAllTakePort();

    /**
     * 查找所有的降落机场
     * @return
     */
    @Select("select * from airport where id in (select distinct land_airport_id from airplane)")
    List<Airport> selectAllLandPort();

    /**
     * 根据id删除机场信息
     * @param id
     * @return
     */
    @Delete("delete from airport where id=#{param1}")
    int deleteById(int id);

    /**
     * 插入机场信息
     * @param airport
     * @return
     */
    @Insert("insert into airport values(default,#{name},#{location})")
    int insert(Airport airport);

    /**
     * 更新机场信息
     * @param airport
     * @return
     */
    @Update("update airport set name=#{name} where id=#{id}")
    int update(Airport airport);
}

3.resultMap注解

  • @results:相当于resultMap标签
  • @result:相当于id标签与result标签
  • @many:相当于collection标签
  • @one:相当于association标签
    @Results(value = {
            @Result(id = true, property = "id", column = "id"),
            @Result(property = "name", column = "name"),
            @Result(property = "location", column = "location")
            @Result(property = "list", column = "id",many = @Many(select = "..."))
    })

4.配置

如果需要使用注解方式,则全局配置文件中的mappers标签中需要配置以下之一

    <mappers>
        
        <package name="com.bear.sxt.mapper">package>
        
        <mapper class="com.bear.sxt.mapper.AirportMapper">mapper>
    mappers>

你可能感兴趣的:(框架,#MyBatis)