itone.service服务分类.md
服务分类
1. IService任意服务
2. IBaseService 数据库服务
BaseService 封装了 常用的 增删改查 操作
3. IRunningService 后台长时间运行的服务
如:数据接收服务
public interface IDataReceiver extends IRunningService
IBaseService ,执行sql语句
/**
* 执行sql脚本文件
*
* @param sqlScript 文本内容
* @return String 错误信息
*/
String runSqlScript(final String sqlScript);
IBaseService 提供的方法
package com.its.core.service;
import com.its.core.db.Db;
import com.its.core.service.cache.PojoCache;
import com.its.core.service.pojo.BasePojo;
import com.its.core.service.pojo.Page;
import com.its.core.service.pojo.PageQueryParam;
import com.its.core.service.pojo.QueryParam;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 数据服务接口
*
* @param <T> bean类型
* @param <K> ID类型<br>
* @author panhongliang
*/
@SuppressWarnings("rawtypes")
public interface IBaseService<T extends BasePojo, K> extends IService {
/**
* 服务id
*
* @return String
*/
String getServiceId();
/**
* setDb.
*
* @param db Db
*/
void setDb(Db db);
/**
* 按ID删除记录
*
* @param id 记录ID
* @return 删除数目
*/
int deleteById(K id);
/**
* 批量删除多条记录
*
* @param ids 记录ID列表
* @return 删除数目
*/
int deleteByIds(List<K> ids);
/**
* 根据参数批量删除对象
*
* @return String
*/
int deleteByQuery(QueryParam<T> param);
/**
* 根据pojo属性批量删除对象
*
* @return String
*/
int deleteByPojo(T pojo);
/**
* 获取所有记录
*
* @return 所有记录
*/
List<T> getAll();
/**
* 按ID获取单行记录
*
* @param id 记录ID
* @return 记录
*/
T getById(K id);
/**
* 按ID获取单行记录
*
* @param id 记录ID
* @return 记录
*/
T getByIdFromCache(K id);
/**
* 按ID获取多条记录
*
* @param ids 记录ID类别
* @return 记录列表
*/
List<T> getByIds(List<K> ids);
/**
* 根据查询参数获取多条记录
*
* @param queryParam 对象pojo或扩展
* @return 记录列表
*/
List<T> getByQuery(QueryParam<T> queryParam);
/**
* 分页查询.
*
* @return List<T>
*/
Page<T> getByPage(PageQueryParam<T> pageQueryParam);
/**
* 根据对象本身信息,进行过滤
*
* @return List<T>记录列表
*/
List<T> getByPojo(T pojo);
/**
* 更新单条记录
*
* @param row 记录(ID中必须有值)
* @return 修改数目
*/
int modify(T row);
/**
* 选择性保存<br> 只保存非空字段
*
* @return 修改数目
*/
int modifySelective(T row);
/**
* 批量选择性保存<br> 只保存非空字段
*
* @return 修改数目
*/
int modifyBatchSelective(List<T> rows);
/**
* 保存一条记录
*
* @param row 记录
* @return 修改数目
*/
int save(T row);
/**
* 选择性保存<br> 只保存非空字段
*
* @param row 记录
* @return 修改数目
*/
int saveSelective(T row);
/**
* 批量保存对象
*
* @param rows 对象列表
* @return 修改数目
*/
int saveBatch(List<T> rows);
/**
* 批量保存对象 可以分批次保存 如 1000条数据,分10次保存,每次保存100条
*
* @param rows 对象列表
* @param batchSize 每批保存的条数
* @return 修改数目
*/
public int saveBatch(final List<T> rows, int batchSize);
/**
* 执行sql脚本文件
*
* @param sqlScriptFile File
* @return String 错误信息
*/
String runSqlFile(final File sqlScriptFile);
List<Map<String, Object>> runSqlReturnMapList(String sql);
/**
* 执行sql脚本文件
*
* @param sqlScript 文本内容
* @return String 错误信息
*/
String runSqlScript(final String sqlScript);
/**
* 获取缓存对象 getCache.
*
* @return String
*/
PojoCache<T, K> getCache();
Boolean isExistNameByTableName(String tableName, String id, String code);
Boolean isExistNameByClass(String prefix, Class clazz, String id, String name);
Boolean isExistCodeByTableName(String tableName, String id, String code);
Boolean isExistCodeByClass(String prefix, Class clazz, String id, String code);
int getNextIdByClass(String prefix, Class clazz);
int getNextIdByTableName(String tableName);
}