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.
com.weicoder.ssh.dao.Dao Maven / Gradle / Ivy
package com.weicoder.ssh.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.weicoder.common.interfaces.Close;
/**
* 通用Dao接口
* @author WD
* @version 1.0
*/
public interface Dao extends Close {
/**
* 持久化对象,添加操作
* @param entity 对象实体
* @return 返回插入实体
*/
E insert(E entity);
/**
* 持久化对象,添加操作
* @param entitys 对象实体
* @return 返回插入实体
*/
List insert(List entitys);
/**
* 持久化数据,锁表 更新表中一行数据
* @param entity 对象实体
* @return 是否成功
*/
E update(E entity);
/**
* 持久化数据,锁表 更新表中一行数据
* @param entitys 对象实体
* @return 是否成功
*/
List update(List entitys);
/**
* 批量持久化对象 保存或更新,如果存在就更新,不存在就插入
* @param entity 需要持久化的对象
* @return 列表对象
*/
E insertOrUpdate(E entity);
/**
* 批量持久化对象 保存或更新,如果存在就更新,不存在就插入
* @param entitys 需要持久化的对象
* @return 列表对象
*/
List insertOrUpdate(List entitys);
/**
* 持久化数据,删除表中多行数据
* @param entity 需要持久话对象的集合
* @return 是否成功
*/
E delete(E entity);
/**
* 持久化数据,删除表中多行数据
* @param entitys 需要持久话对象的集合
* @return 是否成功
*/
List delete(List entitys);
/**
* 获得持久化对象
* @param entityClass 实体类
* @param pk 持久化对象的唯一标识(主键)
* @return 要获得的持久化对象,异常返回null
*/
E get(Class entityClass, Serializable pk);
/**
* 获得持久化对象
* @param entityClass 实体类
* @param pk 持久化对象的唯一标识(主键)
* @return 要获得的持久化对象,异常返回null
*/
List gets(Class entityClass, Serializable... pks);
/**
* 获得持久化对象 如果没有查询到对象 返回null
* @param entity 对象实体
* @return 持久化对象
*/
E get(E entity);
/**
* 获得持久化对象
* @param entityClass 实体类
* @param property 属性名
* @param value 属性值
* @return 要获得的持久化对象,如果不存在返回null
*/
E get(Class entityClass, String property, Object value);
/**
* 获得持久化对象
* @param entity 实体类
* @param map 属性键值
* @return 要获得的持久化对象,如果不存在返回null
*/
E get(Class entity, Map map);
/**
* 获得查询的对象实体列表
* @param entity 需要获得的对象,会查询出实体中封装的相等的条件
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表 异常返回 Collections.emptyList()
*/
List list(E entity, int firstResult, int maxResults);
/**
* 查询所有数据
* @param entityClass 实体类
* @param firstResult 开始查询的条数
* @param maxResults 最多查询多少条
* @return 返回结果列表
*/
List list(Class entityClass, int firstResult, int maxResults);
/**
* 查询属性名等值的实体列表
* @param entityClass 实体类
* @param property 属性名
* @param value 属性值
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List like(Class entityClass, String property, Object value, int firstResult, int maxResults);
/**
* 查询属性名等值的实体列表
* @param entityClass 实体类
* @param property 属性名
* @param value 属性值
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List eq(Class entityClass, String property, Object value, int firstResult, int maxResults);
/**
* 查询属性名等值的实体列表
* @param map 属性
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List eq(Class entityClass, Map map, int firstResult, int maxResults);
/**
* 查询属性名含有列表的实体列表
* @param entityClass 实体类
* @param property 属性名
* @param values 属性值
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List in(Class entityClass, String property, List> values, int firstResult, int maxResults);
/**
* 查询属性名含有列表的实体列表
* @param entityClass 实体类
* @param property 属性名
* @param values 属性值
* @param orders 排序
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List in(Class entityClass, String property, List values, Map orders, int firstResult, int maxResults);
/**
* 查询属性名含有列表的实体列表
* @param entityClass 实体类
* @param parames 参数map
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List in(Class entityClass, Map> parames, int firstResult, int maxResults);
/**
* 查询字段在lo到hi之间的实体
* @param entity 查询实体
* @param property 字段名
* @param lo 开始条件
* @param hi 结束条件
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 返回结果列表
*/
List between(E entity, String property, Object lo, Object hi, int firstResult, int maxResults);
/**
* 查询字段在lo到hi之间的实体
* @param entity 查询实体
* @param property 字段名
* @param lo 开始条件
* @param hi 结束条件
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 返回结果列表
*/
List between(Class entity, String property, Object lo, Object hi, int firstResult, int maxResults);
/**
* 查询属性名等值的实体列表
* @param entity 实体类
* @param orders 排序参数
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List order(E entity, Map orders, int firstResult, int maxResults);
/**
* 查询属性名等值的实体列表
* @param entity 实体类
* @param orders 排序参数
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List order(Class entityClass, Map orders, int firstResult, int maxResults);
/**
* 使用索引查询
* @param entityClass 实体类
* @param property 属性名
* @param value 属性值
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List search(Class entityClass, String property, Object value, int firstResult, int maxResults);
/**
* 使用索引查询
* @param entity 实体
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 数据列表
*/
List search(E entity, int firstResult, int maxResults);
/**
* 获得查询的对象实体总数
* @param entityClass 实体类
* @return 对象实体总数 异常返回 0
*/
int count(Class> entityClass);
/**
* 查询字段在lo到hi之间的实体总数
* @param entity 查询实体
* @param property 字段名
* @param lo 开始条件
* @param hi 结束条件
* @return 返回结果列表
*/
int count(Object entity, String property, Object lo, Object hi);
/**
* 获得查询的对象实体总数
* @param entityClass 实体类
* @param op 操作符
* @param map 属性键值
* @return 对象实体总数 异常返回 0
*/
int count(Class> entityClass, Map map);
/**
* 获得查询的对象实体总数
* @param entity 需要获得的对象,会查询出实体中封装的相等的条件
* @return 对象实体总数 异常返回 0
*/
int count(Object entity);
/**
* 根据实体条件查询数量
* @param entityClass 实体类
* @param property 属性名
* @param value 属性值
* @return 数量
*/
public int count(Class> entityClass, String property, Object value);
/**
* 执行非查询的SQL语言 使用 ? 做参数
* @param entityClass 实体类
* @param sql sql语句 不能是查询的
* @param values 参数值数组
* @return 返回影响的行数 异常返回-1
*/
int execute(Class> entityClass, String sql, Object... values);
/**
* 根据SQL查询语句查询
* @param entityClass 实体类
* @param sql SQL查询语句 参数为?的语句
* @param values 参数列表
* @param firstResult 重第几条开始查询
* @param maxResults 一共查回多少条
* @return 返回结果列表
*/
List query(Class> entityClass, String sql, List values, int firstResult, int maxResults);
}