/**
* @Project: hehenian-biz-common
* @Package com.hehenian.biz.common.account
* @Title: IUserInfoService.java
* @Description: TODO
*
* @author: zhanbmf
* @date 2015-3-29 下午1:55:45
* @Copyright: HEHENIAN Co.,Ltd. All rights reserved.
* @version V1.0
*/
package com.hehenian.biz.common.account;
import java.util.List;
import java.util.Map;
public interface IUserInfoService {
/**
* 根据用户id获得指定的类的内容
* @param id 用户id
* @param clazz 类名
* @param isRealTime 是否实时
* @return 查询的指定实体
*/
public <T> T get(int id, Class<T> clazz, boolean isRealTime);
/**
* 根据用户电话号码、邮箱等获得指定的类的内容
* @param loginInfo 登陆信息
* @param clazz 类名
* @param isRealTime 是否实时
* @return
*/
public <T> T getByLoginInfo(String loginInfo, Class<T> clazz, boolean isRealTime);
/**
* 将实体插入到数据库
* @param t 指定类
* @return 成功1,失败0
*/
public <T> int insert(T t);
/**
* 将实体更新到数据库
* @param t 指定类
* @return 成功1,失败0
*/
public <T> int update(T t, boolean clearCache);
/**
* 更新联合主键的其中一个/多个的值
* @param dest
* @param src
* @return
*/
public <T> int updateKeys(T dest,T src, boolean clearCache);
/**
* 根据实体(主键一致删除,如果是联合主键,必须全部提供)删除数据库对象
* @param t
* @return
*/
public <T> int deleteByKeys(T t);
/**
* 将实体插入到数据库,假如已经存在即更新
* @param t 指定类
* @return 成功1,失败0
*/
public <T> int insertOrUpdate(T t, boolean clearCache);
/**
* 根据用户id删除内容
* @param id 用户id
* @param clazz 指定类
* @return 成功1,失败0
*/
public <T> int delete(int id, Class<T> clazz);
/**
* 根据指定id集合获取List集合
* @param ids 指定id
* @param clazz 指定类
* @param isRealTime 是否实时
* @return
*/
public <T> List<T> getList(int[] ids, Class<T> clazz, boolean isRealTime);
/**
* 根据指定电话号码、邮件等集合获取Map<loginInfo,T>集合
* @param loginInfos 登陆集合
* @param clazz 指定类
* @param isRealTime 是否实时
* @return
*/
public <T> Map<String, T> getListByLoginInfo(String[] loginInfo, Class<T> clazz, boolean isRealTime);
/**
* 批量插入
* @param list 对象集合
* @return map,key:用户id,value:成功1,失败0
*/
public <T> Map<Integer, Integer> insertList(List<T> list);
/**
* 批量更新
* @param list 对象集合
* @return map,key:用户id,value:成功1,失败0
*/
public <T> Map<Integer, Integer> updateList(List<T> list, boolean clearCache);
/**
* 批量删除
* @param list 对象集合
* @return map,key:用户id,value:成功1,失败0
*/
public <T> Map<Integer, Integer> deleteList(List<T> list);
/**
* 查询结果返回list<Map>
* @param sql 指定sql
* @param id 用户id,用于生成和替代sql中的表名
* @param isRealTime 是否实时
* @return 返回list<Map>
*/
public List<Map<String, Object>> queryToListMap(String sql, int id, boolean isRealTime);
/**
* 查询结果返回list<T>
* @param sql 指定sql
* @param id 用户id,用于生成和替代sql中的表名
* @param clazz 指定类
* @param isRealTime 是否实时
* @return 返回list<T>
*/
public <T> List<T> queryToListObject(String sql, int id, Class<T> clazz, boolean isRealTime);
/**
* 查询结果返回数量
* @param sql 指定sql
* @param id 用户id,用于生成和替代sql中的表名
* @param clazz 指定类
* @param isRealTime 是否实时
* @return 返回数量,-1为出错,其他值为正常值
*/
public <T> Integer queryCount(String sql, int id, Class<T> clazz, boolean isRealTime);
}