package com.sf.mapper;


import com.sf.entity.Person;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @author WanJl
 * @version 1.0
 * @title PersonMapper
 * @description
 * @create 2025/11/2
 */
public interface PersonMapper {

    /**
     * 新增人信息
     * 使用注解的方式 @Insert
     * 
     * @param person 封装人信息的对象
     * @return 受到影响的行数
     */
    @Insert("INSERT INTO person VALUES (#{id},#{name},#{age})")
    Integer insert(Person person);

    /**
     * 修改人信息
     * 使用注解的方式 @Update
     * @param person
     * @return
     */
    @Update("UPDATE person SET name=#{name},age=#{age} WHERE id=#{id}")
    Integer update(Person person);

    /**
     * 删除人信息
     * 使用注解的方式 @Delete
     * @param id
     * @return
     */
    @Delete("DELETE FROM person WHERE id=#{id}")
    Integer delete(Integer id);

    /**
     * 根据id查询单个人信息
     * @param id
     * @return
     */
    @Select("SELECT * FROM person WHERE  id=#{id}")
    Person selectById(Integer id);

    /**
     * 查询所有人信息
     * 使用注解的方式查询所有人的信息
     * @Select
     *
     * @return
     */
    @Select("SELECT * FROM person")
    List<Person> selectAll();

    
}
