Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
sf.database.jdbc.sql.CrudSqlInf Maven / Gradle / Ivy
package sf.database.jdbc.sql;
import sf.common.wrapper.Page;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.stream.Stream;
/**
* 按sql操作
*/
public interface CrudSqlInf {
/**
* 批量执行语句.允许返回主键等信息
* @param conn 数据库连接
* @param sql 语句
* @param parameters 参数
* @param insertFast 是否快速插入
* @param batchSize 批处理条数
* @param pkeys 主键列
* @param keyValues 返回主键值
* @return 执行结果
*/
int[] executeBatch(Connection conn, String sql, List parameters, boolean insertFast,
int batchSize, List pkeys, List> keyValues);
/**
* 执行sql语句可以为DML或DDL语句.
* @param conn 数据库连接
* @param psc 回调
* @param setter 回调
* @param callback 回调
* @param sql sql语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
Object execute(Connection conn, PreparedStatementCreator psc, PreparedStatementSetter setter, ResultSetCallback callback, String sql, Object parameters);
/**
* 快速插入
* @param conn 数据库连接
* @param sql sql语句
* @param parameters 参数
* @return 返回
*/
int insertFast(Connection conn, String sql, Object... parameters);
/**
* 插入
* @param conn 数据库连接
* @param pkeys 主键列
* @param keyValues 返回的主键值
* @param sql sql语句
* @param parameters 参数
* @return 返回
*/
int insert(Connection conn, List pkeys, Map keyValues, String sql, Object... parameters);
/**
* 执行单一语句
* @param conn 数据库连接
* @param sql sql语句
* @param parameters 参数
* @param insertFast 是否快速插入
* @param pkeys 主键列
* @param keyValues 返回的主键值
* @return 返回
*/
int execute(Connection conn, String sql, Object[] parameters, boolean insertFast,
List pkeys, Map keyValues);
/**
* 批量执行语句.
* @param conn 数据库连接
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
int[] executeBatch(Connection conn, String sql, List parameters);
/**
* 分页查询
* @param conn 数据库连接
* @param start 开始行
* @param limit 每页行数
* @param beanClass 返回类
* @param sql 原始的语句,不包含限制条数的内容.
* @param parameters 参数
* @param 泛型
* @return 返回
*/
Page selectPage(Connection conn, long start, int limit, Class beanClass, String sql,
Object... parameters);
/**
* 最原始的分页方法,假分页实现,使用result跳过数据,实现
* @param conn 数据库连接
* @param start 起始位置
* @param limit 限制数量
* @param beanClass 返回结果,可以为实体类,Map,List,Object[]
* @param countSql 查询总数的语句
* @param countParas 查询总数的参数
* @param listSql 查询列表的语句,不能包含限制条数(start和limit)的内容.
* @param listParas 查询列表的参数
* @param 泛型
* @return 分页结果
*/
Page selectPageRaw(Connection conn, long start, int limit, Class beanClass, String countSql, Object[] countParas, String listSql, Object[] listParas);
/**
* 最原始的分页方法,假分页实现,使用result跳过数据,实现
* @param conn 数据库连接
* @param start 起始位置
* @param limit 限制数量
* @param beanClass 返回结果,可以为实体类,Map,List,Object[]
* @param countSql 查询总数的语句
* @param countParas 查询总数的参数
* @param listSql 查询列表的语句(需和查询策略配合).
* @param listParas 查询列表的参数
* @param strategy 分页策略
* @param 泛型
* @return 分页结果
*/
Page selectPageRaw(Connection conn, long start, int limit, Class beanClass, String countSql, Object[] countParas, String listSql, Object[] listParas, PageStrategy strategy);
/**
* 支持结果集更新
* @param conn 数据库连接
* @param callback 回调
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
T selectForUpdate(Connection conn, ResultSetCallback callback, String sql, Object... parameters);
/**
* 支持结果集更新
* @param conn 数据库连接
* @param callback 回调
* @param context sql上下文
* @param 泛型
* @return 返回
*/
T selectForUpdate(Connection conn, ResultSetCallback callback, SQLContext context);
/**
* 支持分页实现的迭代查询
* @param conn 数据库连接
* @param ormIt 结果消费
* @param beanClass 返回类型
* @param usePage 是否使用分页实现迭代.
* @param sql 语句
* @param parameters 查询参数
* @param 泛型
*/
void selectIterator(Connection conn, Consumer> ormIt, Class beanClass, boolean usePage, String sql, Object... parameters);
/**
* 支持分页实现的迭代查询
* @param conn 数据库连接
* @param ormIt 结果消费
* @param beanClass 返回类型
* @param usePage 是否使用分页实现迭代.
* @param context 上下文
* @param 泛型
*/
void selectIterator(Connection conn, Consumer> ormIt, Class beanClass, boolean usePage, SQLContext context);
/**
* 支持分页实现的迭代查询
* @param conn 数据库连接
* @param ormStream 结果消费
* @param beanClass 返回类型
* @param usePage 否使用分页实现迭代.
* @param sql 语句
* @param parameters 查询参数
* @param 泛型
*/
void selectStream(Connection conn, Consumer> ormStream, Class beanClass, boolean usePage, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param ormStream 结果消费
* @param beanClass 返回类型
* @param usePage 是否使用分页实现迭代.
* @param context 上下文
* @param 泛型
*/
void selectStream(Connection conn, Consumer> ormStream, Class beanClass, boolean usePage, SQLContext context);
/**
* 查询,允许自定义处理返回结果
* @param conn 数据库连接
* @param callback 回调
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
T selectResultSet(Connection conn, ResultSetCallback callback, String sql, Object... parameters);
/**
* 查询,允许自定义设置查询参数,自定义处理返回结果
* @param conn 数据库连接
* @param psc 回调
* @param callback 回调
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
T selectResultSet(Connection conn, PreparedStatementCreator psc, ResultSetCallback callback, String sql, Object... parameters);
/**
* 主要支持存储过程执行
* @param con 数据库连接
* @param action 回调
* @param 返回类型
* @return 返回
*/
T execute(Connection con, ConnectionCallback action);
/**
* @param conn 数据库连接
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
int execute(Connection conn, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
Object[] selectArray(Connection conn, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param beanClass 返回类型
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
List selectList(Connection conn, Class beanClass, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param beanClass 返回类型
* @param start 开始行
* @param limit 最大限制行数
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回
*/
List selectList(Connection conn, Class beanClass, long start, int limit, String sql, Object... parameters);
/**
* 根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
* @param conn 数据库连接
* @param resultSetMapping @SqlResultSetMapping 中的name
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
List> selectList(Connection conn, String resultSetMapping, String sql, Object... parameters);
/**
* 根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
* @param conn 数据库连接
* @param resultSetMapping @SqlResultSetMapping 中的name
* @param start 开始行
* @param limit 最大限制行数
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
List> selectList(Connection conn, String resultSetMapping, long start, int limit, String sql, Object... parameters);
/**
* 根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
* @param conn 数据库连接
* @param resultSetMapping @SqlResultSetMapping 中的name
* @param sql 语句
* @param parameters 参数
* @return 返回
*/
Object selectOne(Connection conn, String resultSetMapping, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param beanClass 返回对象
* @param sql 语句
* @param parameters 参数
* @param 泛型
* @return 返回值
*/
T selectOne(Connection conn, Class beanClass, String sql, Object... parameters);
/**
* @param conn 数据库连接
* @param sql 语句
* @param paras 参数
* @return 返回
*/
List> select(Connection conn, String sql, Object... paras);
}