文档章节

service服务分类.md

北京起航
 北京起航
发布于 2015/06/12 19:41
字数 708
阅读 34
收藏 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);
}

© 著作权归作者所有

共有 人打赏支持
北京起航
粉丝 55
博文 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
教你校验 Debian 软件包的MD5

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

linuxprobe
2016/10/28
74
0
JAVA加密类型和算法名称

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

商者
2016/07/15
13
0
Android高手进阶(一)AIDL跨进程调用

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

海阔天空玩世不恭
2016/02/02
362
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
55分钟前
2
0
聊聊storm trident batch的分流与聚合

序 本文主要研究一下storm trident batch的分流与聚合 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout) .p......

go4it
昨天
3
0
3分钟总结Mybatis别名

1.系统内置别名: 把类型全小写(resultType/paramType) 2.给某个类起别名 2.1 alias=”自定义” <typeAliases> <typeAlias type="com.bjsxt.pojo.People" alias="peo"/> </typeAli......

KingFightingAn
昨天
2
0
JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
昨天
8
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部