package com.sonic.frog.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sonic.frog.domain.entity.Demo;

/**
 * Demo的对象访问对象. BaseMapper会封装对数据库的CRUD访问.
 * mybatis-plus文档: https://mybatis.plus/guide/
 */
@Repository
public interface DemoDao extends BaseMapper<Demo> {

    /**
     * 使用mybatis映射文件来定义Dao方法，Mapper文件存放在resources/mapper里面
     * 详细的文档请参看： https://mybatis.org/mybatis-3/zh/sqlmap-xml.html
     *
     * 注意：这里仅仅是示例，一般情况还是推荐使用MybatisPlus来操作数据库
     * 目前来看仅当需要多表联查的时候，才可能会用到映射文件；
     * 而多表联查本身并不推荐，可能会引起性能问题
     * @param status
     *
     * @return list of demo
     */
    List<Demo> listByStatus(@Param("status") Demo.Status status);

    /**
     * update name
     *
     * @param id
     * @param name
     */
    void updateName(@Param("id") Long id, @Param("name") String name);
}
