cubetiq-sql-core/src/main/java/com/cubetiqs/sql/JdbcDataQuery.java

62 lines
2.2 KiB
Java

package com.cubetiqs.sql;
import com.cubetiqs.mapper.MapperProvider;
import com.cubetiqs.mapper.RowMapperProvider;
import java.util.List;
import java.util.Map;
public interface JdbcDataQuery extends JdbcAccessor {
IExecuteResult<List<Object>> queryForList(String sql);
IExecuteResult<List<Object>> queryForList(String sql, Object... args);
IExecuteResult<Object> queryForObject(String sql);
IExecuteResult<Object> queryForObject(String sql, Object... args);
<R> IExecuteResult<R> query(MapperProvider<Map<String, Object>, R> mapper, String sql, Class<R> clazz);
<R> IExecuteResult<R> query(MapperProvider<Map<String, Object>, R> mapper, String sql, Class<R> clazz, Object... args);
<R> IExecuteResult<R> query(String sql, RowMapperProvider<R> mapper);
<R> IExecuteResult<R> query(String sql, RowMapperProvider<R> mapper, Object... args);
default IExecuteResult<List<Object>> queryForList(ISqlMapParameter parameter) {
if (parameter.getParams().size() == 0) {
return queryForList(parameter.getSql());
}
Object[] args = parameter.getSqlArgs();
return queryForList(parameter.getFormatSql(), args);
}
default IExecuteResult<Object> queryForObject(ISqlMapParameter parameter) {
if (parameter.getParams().size() == 0) {
return queryForObject(parameter.getSql());
}
Object[] args = parameter.getSqlArgs();
return queryForObject(parameter.getFormatSql(), args);
}
default <R> IExecuteResult<R> query(MapperProvider<Map<String, Object>, R> mapper, ISqlMapParameter parameter, Class<R> clazz) {
if (parameter.getParams().size() == 0) {
return query(mapper, parameter.getSql(), clazz);
}
Object[] args = parameter.getSqlArgs();
return query(mapper, parameter.getFormatSql(), clazz, args);
}
default <R> IExecuteResult<R> query(ISqlMapParameter parameter, RowMapperProvider<R> mapper) {
if (parameter.getParams().size() == 0) {
return query(parameter.getSql(), mapper);
}
Object[] args = parameter.getSqlArgs();
return query(parameter.getFormatSql(), mapper, args);
}
}