All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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





© 2015 - 2024 Weber Informatics LLC | Privacy Policy