All Downloads are FREE. Search and download functionalities are using the official Maven repository.
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.zhangzlyuyx.easy.mybatis.common.BaseService Maven / Gradle / Ivy
package com.zhangzlyuyx.easy.mybatis.common;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.zhangzlyuyx.easy.mybatis.Condition;
import com.zhangzlyuyx.easy.mybatis.IPageQuery;
import com.zhangzlyuyx.easy.mybatis.IPageResult;
import com.zhangzlyuyx.easy.mybatis.entity.JoinExample;
import com.zhangzlyuyx.easy.mybatis.enums.DbType;
import tk.mybatis.mapper.entity.Example;
/**
* base service 接口
* @author zhangzlyuyx
*
* @param
*/
public interface BaseService {
/**
* 获取 mapper
* @return
*/
BaseMapper getMapper();
/**
* 获取实体 class
* @return
*/
Class getEntityClass();
/**
* 获取实体映射的数据库表
* @return
*/
String getEntityTable();
/**
* 获取数据库类型
* @return
*/
DbType getDbType();
/**
* 保存一个实体
* @param record 实体
* @return
*/
int insert(T record);
/**
* 保存一个实体
* @param record 实体
* @param selective 是否选择性保存(true:null的属性不会保存 false:null的属性也会保存)
* @return
*/
int insert(T record, boolean selective);
/**
* 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列
* @param recordList 实体集合
* @return
*/
int insertList(List recordList);
/**
* 执行 insert sql 语句
* @param sql
* @param parameter
* @return
*/
int insertBySql(String sql, Object parameter);
/**
* 根据主键条件删除数据
* @param key 主键查询条件
* @return
*/
int deleteByPrimaryKey(Object key);
/**
* 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
* @param ids ids 如 "1,2,3,4"
* @return
*/
int deleteByIds(String ids);
/**
* 根据实体条件删除数据
* @param record 实体查询条件
* @return
*/
int deleteByEntity(T record);
/**
* 根据map条件删除数据
* @param queryMap map查询条件
* @return
*/
int deleteByMap(Map queryMap);
/**
* 根据condition条件删除数据
* @param conditions condition查询条件
* @return
*/
int deleteByCondition(List conditions);
/**
* 根据example条件删除数据
* @param example example查询条件
* @return
*/
int deleteByExample(Example example);
/**
* 执行 delete sql 语句
* @param sql
* @param parameter
* @return
*/
int deleteBySql(String sql, Object parameter);
/**
* 根据主键条件更新实体
* @param record 包含主键的实体
* @return
*/
int updateByPrimaryKey(T record);
/**
* 根据主键条件更新实体
* @param record 包含主键的实体
* @param selective 是否选择性(true:null的值不更新 false:null值会被更新)
* @return
*/
int updateByPrimaryKey(T record, boolean selective);
/**
* 根据map条件更新实体
* @param entity 更新结果
* @param queryMap 查询条件
* @return
*/
int updateByMap(T entity, Map queryMap);
/**
* 根据map条件更新实体
* @param entity 更新结果
* @param queryMap 查询条件
* @param selective 是否选择性(true:null的值不更新 false:null值会被更新)
* @return
*/
int updateByMap(T entity, Map queryMap, boolean selective);
/**
*根据condition条件更新实体
* @param entity 更新结果
* @param conditions 更新查询条件
* @return
*/
int updateByCondition(T entity, List conditions);
/**
*根据condition条件更新实体
* @param entity 更新结果
* @param conditions 更新查询条件
* @param selective 是否选择性(true:null的值不更新 false:null值会被更新)
* @return
*/
int updateByCondition(T entity, List conditions, boolean selective);
/**
* 根据example条件更新实体
* @param entity 实体
* @param example example条件
* @return
*/
int updateByExample(T entity, Example example);
/**
* 根据example条件更新实体
* @param entity 实体
* @param example example条件
* @param selective 是否选择性(true:null的值不更新 false:null值会被更新)
* @return
*/
int updateByExample(T entity, Example example, boolean selective);
/**
* 更新实体列表
* @param list
* @return
*/
int updateList(List list);
/**
* 执行 update sql 语句
* @param sql
* @param parameter
* @return
*/
int updateBySql(String sql, Object parameter);
/**
* 根据主键查询实体
* @param key 主键值
* @return
*/
T selectByPrimaryKey(Object key);
/**
* 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
* @param ids ids 如 "1,2,3,4"
* @return
*/
List selectByIds(String ids);
/**
* 查询首个数据
* @param queryMap 查询条件
* @param orderByClause 排序
* @param properties 筛选的属性
* @return
*/
T selectFirst(Map queryMap, String orderByClause, String... properties);
/**
* 根据唯一字段查询数据
* @param column
* @param value
* @param properties
* @return
*/
T selectByUnique(String column, Object value, String... properties);
/**
* 根据唯一字段查询记录数
* @param column
* @param value
* @return
*/
int selectCountByUnique(String column, Object value);
/**
* 查询全部结果
* @return
*/
List selectAll();
/**
* 根据实体中的属性查询总数
* @param record 查询的实体条件(等号匹配)
* @return
*/
int selectCountByEntity(T record);
/**
* 根据实体查询结果集合
* @param record 查询的实体条件(等号匹配)
* @return
*/
List selectByEntity(T record);
/**
* 根据条件查询总数
* @param queryMap map查询条件
* @return
*/
int selectCountByMap(Map queryMap);
/**
* 查询结果集合
* @param queryMap 查询条件
* @return
*/
List selectByMap(Map queryMap);
/**
* 查询结果集合
* @param queryMap 查询条件
* @param pageNo 分页页码(从1开始)
* @param pageSize 分页每页记录数
* @param orderByClause 排序
* @param properties 筛选结果属性
* @return
*/
List selectByMap(Map queryMap, Integer pageNo, Integer pageSize, String orderByClause, String... properties);
/**
* 根据条件查询总数
* @param conditions
* @return
*/
int selectCountByCondition(List conditions);
/**
* 查询结果集合
* @param conditions 查询条件
* @return
*/
List selectByCondition(List conditions);
/**
* 查询结果集合
* @param conditions 查询条件
* @param pageNo 分页页码(从1开始)
* @param pageSize 分页每页记录数
* @param orderByClause 排序
* @param properties 筛选结果属性
* @return
*/
List selectByCondition(List conditions, Integer pageNo, Integer pageSize, String orderByClause, String... properties);
/**
* 查询分页结果
* @param pageQuery 分页查询条件
* @return
*/
IPageResult selectByPage(IPageQuery pageQuery);
/**
* 查询结果记录数
* @param example 查询条件
* @return
*/
int selectCountByExample(Example example);
/**
* 查询结果集合
* @param example 查询条件
* @return
*/
List selectByExample(Example example);
/**
* 查询结果集合
* @param example 查询条件
* @param pageNo 分页页码(从1开始)
* @param pageSize 分页每页记录数
* @return
*/
List selectByExample(Example example, Integer pageNo, Integer pageSize);
/**
* 执行 select sql 查询实体列表
* @param sql
* @param parameter
* @return
*/
List selectListBySql(String sql, Object parameter);
/**
* 执行 select sql 查询map列表
* @param sql
* @param parameter
* @return
*/
List> selectMapListBySql(String sql, Object parameter);
/**
* 执行 select sql 查询指定类型列表
* @param sql
* @param parameter
* @param resultType
* @return
*/
List selectListBySql(String sql, Object parameter, Class resultType);
/**
* 根据 joinExample 查询记录数
* @param joinExample
* @return
*/
Integer selectCountByJoinExample(JoinExample joinExample);
/**
* 根据 joinExample 查询列表
* @param joinExample
* @param pageNo
* @param pageSize
* @return
*/
List selectByJoinExample(JoinExample joinExample, Integer pageNo, Integer pageSize);
/**
* 根据 joinExample 查询 Map 列表
* @param joinExample
* @param pageNo
* @param pageSize
* @return
*/
List> selectMapByJoinExample(JoinExample joinExample, Integer pageNo, Integer pageSize);
/**
* 根据 joinExample 查询分页对象列表
* @param clazz
* @param joinExample
* @param pageNo
* @param pageSize
* @return
*/
IPageResult
selectByPage(Class
clazz, JoinExample joinExample, Integer pageNo, Integer pageSize);
/**
* 获取服务器时间
* @return
*/
Date getDate();
/**
* 获取 mysql 服务器时间
* @return
*/
Date getMySqlDate();
/**
* 获取 oracle 服务器时间
* @return
*/
Date getOracleDate();
/**
* 获取 sqlserver 服务器时间
* @return
*/
Date getSqlServerDate();
}