package org.ks4j.orm.hibernate;
import java.util.List;
import java.util.Map;
import org.ks4j.orm.Compositor;
import org.ks4j.orm.Filtration;
import org.ks4j.orm.PageData;
public interface IBaseService<T> {
/**
* 新增对象.
*/
public void save(T entity);
/**
* 修改对象.
*/
public void update(T entity);
/**
* 删除对象.
*/
public void delete(T entity);
/**
* 通过id删除对象.
*/
public void delete(String id);
/**
* 按id获取对象.
*/
public T findById(String id);
/**
* 按属性查找唯一对象,匹配方式为相等.
*/
public T find(String fieldName, Object fieldValue);
/**
* 按属性查找对象列表,匹配方式为相等.
*/
public List<T> findList(String fieldName, Object fieldValue);
/**
* 按照过滤条件对象查找对象列表.
*/
public List<T> findList(Filtration... filtrations);
/**
* 按照过滤条件对象查找对象列表.
*/
public List<T> findList(List<Filtration> filtrationList);
/**
* 按照过滤条件对象查找对象列表,支持排序.
*/
public List<T> findList(Compositor compositor, Filtration... filtrations);
/**
* 按照过滤条件对象查找对象列表,支持排序.
*/
public List<T> findList(Compositor compositor, List<Filtration> filtrationList);
/**
* 获取全部对象.
*/
public List<T> findAll();
/**
* 获取全部对象,支持排序.
*/
public List<T> findAll(Compositor compositor);
/**
* 分页查询.
*/
public PageData<T> find(PageData<T> pageData);
/**
* 按id列表获取对象.
*/
public List<T> findListByIds(List<String> idList);
//--------------------------------------------------------------------------------------------------
/**
* 按HQL查询唯一对象.
* @param hql "from Users where name=? and password=?"
* @param values 数量可变的参数,按顺序绑定.
* @return
*/
public <X> X find(String hql, Object... values);
/**
* 按HQL查询唯一对象.
* @param hql "from Users where name=:name and password=:password"
* @param values 命名参数,按名称绑定.
* @return
*/
public <X> X find(String hql, Map<String, ?> values);
/**
* 按HQL查询对象列表.
* @param hql "from Users where name=? and password=?"
* @param values 数量可变的参数,按顺序绑定.
* @return
*/
public <X> List<X> findList(String hql, Object... values);
/**
* 按HQL查询对象列表.
* @param hql "from Users where name=:name and password=:password"
* @param values 命名参数,按名称绑定.
* @return
*/
public <X> List<X> findList(String hql, Map<String, ?> values);
/**
* 执行HQL进行批量修改/删除操作.
* @return 更新记录数.
*/
public int batchExecute(String hql, Object... values);
/**
* 执行HQL进行批量修改/删除操作.
* @return 更新记录数.
*/
public int batchExecute(String hql, Map<String, ?> values);
//--------------------------------------------------------------------------------------------------
/**
* 本地SQL进行修改/删除操作.
* @return 更新记录数.
*/
public List find(String sql);
}
分享到:
相关推荐
这样,类A只需要依赖`IBaseService`,而不是具体的`ClassB`,在需要更换服务实现时,只需更改IoC容器的配置即可。 4. **生活周期管理**: IoC容器还可以帮助管理对象的生活周期,例如单例、每次请求创建新实例等...
在WCF中,服务可以通过继承来扩展其功能,这是一种强大的设计模式,尤其对于初学者来说,理解并掌握WCF的继承机制对提升开发能力非常有帮助。 **WCF服务继承** 主要是通过定义基服务合同(Service Contract)和派生...
可以使用Navicat这样的数据库管理工具来查看和验证创建的数据库和表。 最后,我们将在WPF UI层调用业务服务层的方法,将数据绑定到控件上,或者执行增删改查操作。例如,写入数据时,可以调用`StudentService`的`...
例如,如果你有一个 User 实体,你可以创建一个 UserService 类并实现 IUserService 接口,这样就可以方便地进行增删改查操作。 1. 新增方法: - `save`: 用于插入一条记录,如果实体对象的主键已存在,那么它会被...
在C#编程中,依赖注入(Dependency Injection,简称DI)是一种设计模式,它允许我们解耦组件间的依赖关系,使得代码更加灵活、可测试和易于维护。ASP.NET Core 自带了一个强大的依赖注入框架,通常用于Web应用程序。...
spring+springmvc+mybatis框架项目核心包 提供用于显示对象用的QueryBean类, 异常统一处理类SysExceptionReslver 用户登录校验过滤器...另外还有IBaseMapper、IBaseService、BaseServiceImpl实现基于增删改方法
回顾项目:Araba Kiralama Sistemi层数 :card_file_box: Entities Layer :open_file_folder: Concrete :page_with_curl: :page_with_curl: :page_...file_folder: Abstract :page_with_curl: IBaseService.cs :page_wit