package com.imyeyu.spring.mapper; import com.imyeyu.spring.bean.Logic; import com.imyeyu.spring.util.RawSQLProvider; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.SelectProvider; import java.util.List; /** * 原始 SQL 映射 * * @param 实体类型 * @param

主键类型 * @author 夜雨 * @since 2026-01-05 12:58 */ public interface RawMapper { /** * 查询全部数据 * * @return 数据列表 */ @SelectProvider(type = RawSQLProvider.class, method = "selectAll") List selectAllRaw(); /** * 根据 ID 获取对象 * * @param id 索引 * @return 数据对象 */ @SelectProvider(type = RawSQLProvider.class, method = "select") T selectRaw(P id); /** * 根据示例查询单条数据 * * @param t 示例对象 * @return 数据对象 */ default T selectByExampleRaw(T t) { return selectByExampleRaw(t, Logic.AND); } /** * 根据示例查询单条数据 * * @param t 示例对象 * @param logic 条件连接逻辑 * @return 数据对象 */ @SelectProvider(type = RawSQLProvider.class, method = "selectByExample") T selectByExampleRaw(@Param("entity") T t, @Param("logic") Logic logic); /** * 根据示例查询全部数据 * * @param t 示例对象 * @return 数据列表 */ default List selectAllByExampleRaw(T t) { return selectAllByExampleRaw(t, Logic.AND); } /** * 根据示例查询全部数据 * * @param t 示例对象 * @param logic 条件连接逻辑 * @return 数据列表 */ @SelectProvider(type = RawSQLProvider.class, method = "selectAllByExample") List selectAllByExampleRaw(@Param("entity") T t, @Param("logic") Logic logic); }