package com.yj.dao;

import com.yj.bean.User;

import java.util.List;

/**
 * 用户数据访问接口
 * @author yj
 * @create 2020-08-21 11:57
 */
public interface UserDao {

    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 如果返回null则没有这个用户，反之亦然
     */
    public User querybyUsername(String username);

    /**
     * 根据用户名和密码查询用户信息
     * @param username 用户名
     * @param password 密码
     * @return 如果返回null则说明用户名或密码错误
     */
    public User querybyUsernameAndPassword(String username, String password);

    /**
     * 保存用户信息
     * @param user 用户对象
     * @return 返回影响的行数
     */
    public int saveUser(User user);

    /**
     * 添加新用户
     * @param user 用户对象
     * @return 返回影响的行数
     */
    public int addUser(User user);

    /**
     * 根据用户ID删除用户
     * @param i 用户ID
     * @return 返回影响的行数
     */
    public int deleteUserById(int i);

    /**
     * 更新用户信息
     * @param user 用户对象
     * @return 返回影响的行数
     */
    public int updateUser(User user);

    /**
     * 根据用户ID查询单个用户信息
     * @param id 用户ID
     * @return 用户对象，如果不存在则返回null
     */
    public User queryUserById(Integer id);

    /**
     * 查询所有用户信息
     * @return 用户列表
     */
    public List<User> queryUsers();

    /**
     * 查询用户表中的总记录数
     * @return 用户总数
     */
    public Integer queryForPageTotalCount();

    /**
     * 进行分页查询，获取指定页的数据
     * @param begin 起始位置
     * @param pageSize 每页显示的用户数量
     * @return 指定页的用户列表
     */
    public List<User> queryForPageItems(int begin, int pageSize);
}
