DbExecute.java 2.17 KB
package com.yanzuoguang.db;

import com.yanzuoguang.db.impl.DbRow;
import com.yanzuoguang.util.vo.MapRow;

import java.util.List;

/**
 * 数据库链接处理工具类
 *
 * @author 颜佐光
 */
public interface DbExecute {

    /**
     * 更新SQL语句的执行
     *
     * @param targetClass 触发类
     * @param sqlName     SQL语句名称
     * @param sql         SQL语句
     * @param paras       参数信息
     * @return
     */
    int update(Class targetClass, String sqlName, String sql, Object... paras);


    /**
     * 查询数据
     *
     * @param targetClass 触发类
     * @param cls         查询的结果的类型
     * @param sqlName     SQL语句名称
     * @param rowHandle   通过该类来处理结果
     * @param sql         需要查询的SQL语句
     * @param paras       查询语句的参数
     * @param <T>         返回的集合的类型
     * @return 集合
     */
    <T extends Object> void query(Class targetClass, Class<T> cls, DbRow<T> rowHandle, String sqlName, String sql, Object... paras);

    /**
     * 查询数据,并返回集合
     *
     * @param targetClass 触发类
     * @param cls         查询的结果的类型
     * @param sqlName     SQL语句名称
     * @param sql         需要查询的SQL语句
     * @param paras       查询语句的参数
     * @param <T>         返回的集合的类型
     * @return 集合
     */
    <T> List<T> query(Class targetClass, Class<T> cls, String sqlName, String sql, Object... paras);

    /**
     * 查询数据,并返回集合
     *
     * @param targetClass 触发类
     * @param sqlName     SQL语句名称
     * @param sql         需要查询的SQL语句
     * @param paras       查询语句的参数
     * @return 集合
     */
    List<MapRow> query(Class targetClass, String sqlName, String sql, Object... paras);

    /**
     * 查询第一个单元格的信息
     *
     * @param targetClass 触发类
     * @param sqlName     SQL语句名称
     * @param sql         SQL语句
     * @param paras       参数信息
     * @return 第一个单元格的数据
     */
    Object queryCell(Class targetClass, String sqlName, String sql, Object... paras);
}