package com.fang.bbks.common.persistence.jdbc; import java.io.Serializable; import java.util.List; import java.util.Map; /** * @Intro 基本操作类型 * @author Lee * @Date 2013-8-13 */ public interface BaseDao<T,ID extends Serializable> { /** * 基础接口之一</br> * 批量添加接口 * @param sql * @param values * @return */ public int[] batchAdd(String sql, Object[][] values); /** * 基础接口之一</br> * 批量删除记录接口 * @param sql * @param values * @return */ public int del(String sql, Object[] values); /** * 基础接口之一</br> * 更新接口 * @param sql * @param values * @return */ public int update(String sql, Object[] values); /** * 基础接口之一</br> * 查询一个long值 * @param sql * @param values * @return */ public long getLong(String sql, Object[] values); /** * 基础接口之一</br> * 查询一个int值 * @param sql * @param values * @return */ public int getInt(String sql, Object[] values); /** * 基础接口之一</br> * sql查询通用接口 * @param sql * @param values * @return */ public List<T> search(String sql, Object[] values); /** * 基础接口之一</br> * sql查询通用接口 * @param sql * @param values * @param e * @return */ public <T> List<T> search(String sql, Object[] values,Class<T> e); /** * 分页查询 * * @param sql * @param values * @param Paging * @return */ public Paging<T> search(String sql, Object[] values, Paging<T> Paging); /** * 分页查询 * * @param sql * @param values * @param Paging * @return */ public <T> Paging<T> search(String sql, Object[] values, Paging<T> Paging,Class<T> e); /** * 根据主键修改数据 * * @param t * @return */ public T update(T t); /** * 批量添加接口 * @param list * @return */ public int[] batchSave(List<T> list); /** * 获取一条sql执行后返回的记录数 * @param sql * @param values * @return */ public int getCount(String sql, Object[] values); /** * 根据id值删除多条数据 * @param ids * @return */ public int delByIds(List<ID> ids); /** * 根据id删除一条记录 * @param id * @return */ public int del(ID id); /** * 根据id值查询多条数据 * @param ids * @return */ public List<T> getByIds(List<ID> ids); /** * 根据id值查询 * @param id * @return */ public T get(ID id); /** * 获取本表所有记录 * @return */ public List<T> getAll(); /** * 获取主键列名 * @return */ public String getPk(); /** * 获取表名 * @return */ public String getTableName(); /** * 添加记录,并返回新增记录的主键<br/> * 注意:<br/> * 当主键生成策略为IDENTITY(数据库自增)时,SQL执行成功返回新数据主键,执行不成功返回0<br/> * 主键生成策略为非IDENTITY(数据库自增)时,SQL执行返回值无法确定<br/> * @param sql * @param values * @return */ public ID addReturnId(String sql, List<Object> values); /** * 保存一个对象 * @param t * @return */ public T save(T t); /** * sql查询通用接口 * @param t * @return */ public List<T> search(T t); /** * sql查询通用接口,忽略主键,仅返回查询结果集的第一个对象 * @param t * @return */ public T searchOne(T t); /** * * @param t * @param Paging * @return */ public Paging<T> search(T t, Paging<T> Paging); /** * sql查询通用接口 * @param sql * @param values * @param e * @return */ public List<Map<String,Object>> searchForMap(String sql, List<Object> values); }