All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.acyou.leo.framework.mapper.ExecuteMapper Maven / Gradle / Ivy

package cn.acyou.leo.framework.mapper;

import cn.acyou.leo.framework.model.IdReq;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.LinkedHashMap;
import java.util.List;

/**
 * 直接执行SQL
 *
 * 已由Framework扫描   {@link cn.acyou.leo.framework.auto.LeoFrameworkConfiguration}
 * @author youfang
 * @version [1.0.0, 2024/4/22 10:35]
 **/
@Mapper
public interface ExecuteMapper {

    /**
     * 执行列表的查询,会返回别名的对应map列表(LinkedHashMap 可以保证顺序)
     *
     * @param sql sql语句
     * @return 查询结果 别名的对应map列表
     */
    @Select("${sql}")
    List> executeQuerySql(@Param("sql") String sql);

    /**
     * 执行单个字段的查询,会返回一个值
     *
     * @param sql sql语句
     * @return 查询结果 会返回一个值
     */
    @Select("${sql}")
    String executeIndividualQuerySql(@Param("sql") String sql);

    /**
     * 查询表是否包含列
     * 存在为1/不存在为0
     *
     * @param tableName 表
     * @param columnName 列
     * @return 查询结果 会返回一个值
     */
    @Select("select count(1) as isExist from (\n" +
            "select\n" +
            "\tCOLUMN_NAME\n" +
            "from\n" +
            "\tINFORMATION_SCHEMA.COLUMNS\n" +
            "where\n" +
            "   TABLE_NAME = '${tableName}' and COLUMN_NAME = '${columnName}'\n" +
            ") as t")
    int columnIsExist(@Param("tableName") String tableName, @Param("columnName") String columnName);

    /**
     * 查询表是否包含列
     * 存在为1/不存在为0
     *
     * @param tableName 表
     * @return 查询结果 会返回一个值
     */
    @Select("SELECT COUNT(1) as isExist FROM information_schema.tables WHERE table_schema=database() AND table_name='${tableName}'")
    int tableIsExist(@Param("tableName") String tableName);

    /**
     * 执行insert语句
     *
     * @param sql sql语句
     * @return int 1成功 0失败
     */
    @Insert("${sql}")
    int executeInsertSql(@Param("sql") String sql);
    /**
     * 执行insert语句
     *
     * @param sql sql语句
     * @return int 1成功 0失败
     */
    @Insert("${sql}")
    @Options(useGeneratedKeys = true, keyProperty = "idReq.id")
    int executeInsertSqlV2(@Param("sql") String sql, @Param("idReq") IdReq idReq);

    /**
     * 执行update语句
     *
     * @param sql sql语句
     * @return int 1成功 0失败
     */
    @Update("${sql}")
    int executeUpdateSql(@Param("sql") String sql);

    /**
     * 执行delete语句
     *
     * @param sql sql语句
     * @return int 1成功 0失败
     */
    @Delete("${sql}")
    int executeDeleteSql(@Param("sql") String sql);

    /**
     * 执行ddl语句 同update
     *
     * @param sql sql语句
     * @return int 1成功 0失败
     */
    @Update("${sql}")
    int executeDDLSql(@Param("sql") String sql);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy