文档章节

service服务分类.md

北京起航
 北京起航
发布于 2015/06/12 19:41
字数 708
阅读 32
收藏 0
点赞 0
评论 0

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);
}

© 著作权归作者所有

共有 人打赏支持
北京起航
粉丝 53
博文 52
码字总数 29304
作品 0
海淀
架构师
nagios 监控配置介绍(三)

1.主动监控模式 监控客户端LNMP 网站服务 服务器端: [root@nagios]#cd /usr/local/nagios/etc/objects [root@nagios objects]# vi commands.cfg #在最下面增加: # 'check_weburl' command......

ahtornado
2016/12/23
0
0
springmvc itext 生成pdf文档下载的时候只能用浏览器自动查看

我用springmvc+itext生成pdf文档的时候,在有某些时候下载的时候只能用浏览器浏览不能自动下载代码如下:真没看出什么问题,有遇到过类似问题并解决的朋友分享下,感激 着是controller /** ...

cqwck
2016/01/14
767
0
游戏服务器骨架--gonet2

欢迎使用 gonet/2是新一代游戏服务器骨架,基于go语言开发,采用了先进的http/2作为服务器端主要通信协议,以microservice作为主要思想进行架构,采用docker作为服务发布手段。相比第一代gon...

xtaci
2015/10/15
3.2K
0
JAVA加密类型和算法名称

项目里有各种加密方法,但从来没有仔细研究过。一般只是copy。这几天遇到一些问题,看了一下加密代码,觉得有些疑惑。     我们知道jdk已经为我们包装好了很多的算法。但究竟包装了哪些算...

商者
2016/07/15
13
0
menduo/gitit-bigger

Gitit Bigger Gitit Bigger: Git and Markdown based wiki, Bootstrap, ace Editor, syntax highlight and docker deploy support. 基于 Git 和 Markdown 的超棒的 Wiki 系统,Bootstrap、A......

menduo
2015/08/26
0
0
Android高手进阶(一)AIDL跨进程调用

Android高手进阶(一)AIDL跨进程调用 什么是ADIL跨进程调用? 由于Android是不允许两个进程共享内存空间的,所以如果当前你开发的应用需要调用其他应用的某个逻辑处理某个事情的时候,就需要用...

海阔天空玩世不恭
2016/02/02
362
0
友盟自动更新技术解决方案(安卓版)

系统结构友盟自动更新系统的示意图如下: 图中手机代表客户端。服务端的各个模块描述如下: WebConsole:提供上传更新包的网站操作界面。FS:文件系统,存储apk文件和增量更新包,增量更新的原...

3kqing
2016/05/16
20
0
教你校验 Debian 软件包的MD5

如何对照MD5校验和校验已安装的Debian软件包 在Debian/Ubuntu系统上,你可以使用debsums工具来校验已安装软件包的MD5和。如果你想在安装之前知道关于debsums软件包的信息,可以使用APT-CACHE...

linuxprobe
2016/10/28
74
0
centos6——初始化脚本

服务器centos6初始化脚本,包含几个方面: 修改主机名 添加用户秘钥 ssh 端口修改 ulimit值修改 防火墙修改 添加追踪日志 时间同步 安装一些基础软件包 nagios客户端安装 zabbix客户端安装 ...

悠悠子濛
2017/02/15
0
0
【微服务】网关Kong整合SpringBoot和Consul设计

前面的博客已经整理了SpringBoot整合Consul以及Kong的相关文章。这次讲讲对于这套微服务架构如何实施我的理解。 先上图,整体架构图如下: 模块说明: Client: 外部访问应用 Api-GateWay-Cl...

Tree
01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java基础——异常

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 异常处理: 可以挖很多个陷阱,但是不要都是一样...

凯哥学堂
28分钟前
0
0
180723-Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本支持框架之结构设计篇 相关博文: 180702-QuickTask动态脚本...

小灰灰Blog
31分钟前
0
0
SBT 常用开发技巧

SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill...

joymufeng
36分钟前
0
0
HBase in Practice - 性能、监控及问题解决

李钰(社区ID:Yu Li),阿里巴巴计算平台事业部高级技术专家,HBase开源社区PMC&committer。开源技术爱好者,主要关注分布式系统设计、大数据基础平台建设等领域。连续4年基于HBase/HDFS设计和...

中国HBase技术社区
37分钟前
1
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API public static void multiGet() {// 批量查询MultiGetResponse response = getClient().prepareMultiGet().add("my_person", "my_index", "1")// 查......

贾峰uk
41分钟前
0
0
SpringBoot2.0使用health

1,引入actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 2,application.properties ......

暗中观察
48分钟前
0
0
阿里巴巴Java开发规约

###编程规约 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。...

简心
53分钟前
0
0
如何用TypeScript来创建一个简单的Web应用

转载地址 如何用TypeScript来创建一个简单的Web应用 安装TypeScript 获取TypeScript工具的方式: 通过npm(Node.js包管理器) npm install -g typescript 构建你的第一个TypeScript文件 创建...

durban
57分钟前
0
0
分享好友,朋友圈自定义分享链接无效

这个问题是微信6.5.6版本以后,修改了分享规则:分享的连接必须在公众号后台设定的js安全域名内

LM_Mike
今天
0
0
2018年7月23日课程

一、LVS-DR介绍 director分配请求到不同的real server。real server 处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。负载均衡器仅处理一半的连接,避免了...

人在艹木中
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部