com.gzza.framework.iservice.CommonManager类,封装了通用的实体类增删改查的方法。
/**
* 执行sql更新语句, 可用于执行一条update或delete语句
*/
public int executeUpdateFullSql(String sql);
/**
* 执行hql更新语句, 可用于执行一条update或delete语句
*/
public int executeUpdateFullHql(String hql);
/**
* 保存任意多个实体对象,如果是保存多个对象,会使用批量方式插入
* 所以在要保存很多对象时,需要用List先保存,再调用saveEntity(list)方法
*/
public void saveEntity(Object... object);
public void saveEntity(List<? extends Object> objects);
/**
* 保存或更新一个实体对象
*/
public void saveOrModifyEntity(Object object);
/**
* 修改任意多个实体对象,如果是保存多个对象,会使用批量方式修改
* 所以在要修改很多对象时,需要用List先保存,再调用modifyEntity(list)方法
*/
public void modifyEntity(Object object);
public void modifyEntity(Object... object);
/**
* 通过ID查找对象,id参数可是String,Long,Integer类型
* 如User user = commonManager.findEntityByPK(User.class, 1);
*/
public <E> E findEntityByPK(Class<E> clazz, Serializable id);
/**
* 通通过多个id一次性查找多个对象,如
* List<User> users = commonManager.findEntityByPKs(User.class, "1,2,52,62,19");
* List<User> users = commonManager.findEntityByPKs(User.class, 3, 4,5, 56);
* List<User> users = commonManager.findEntityByPKs(User.class, list); //list里面是id
*/
public <E> List<E> findEntityByPKs(Class<E> clazz, Object... ids);
public <E> List<E> findEntityByPKs(Class<E> clazz, List<? extends Object> ids);
/**
* 删除任意多个实体对象,如果是删除多个时,会发出一条delete类型的sql来删除
* 在需要删除大量多个对象时,可以先用list保存,再调用deleteEntity(list)
*/
public void deleteEntity(Object... objects);
public void deleteEntity(List<? extends Object> objects);
/**
* 通过id删除任意多个对象,如调用
* deleteEntityByPK(User.class, "1,2,52,62,19")
* deleteEntityByPK(User.class, 1, 2, 3)
* deleteEntityByPK(User.class, list) // list里面是id
*/
public void deleteEntityByPK(Class clazz, Serializable... ids);
public void deleteEntityByPK(Class clazz, List<Serializable> ids);
/**
* 通过hql条件删除,如删除状态为0的用户
* commonManager.deleteByParamHQL(User.class, " status = 0"));
*/
public <E> void deleteByParamHQL(Class<E> clazz, String hqlParam);
/**
* 通过查询条件,返回唯一的对象,如果查不到或者如果有多个满足查询条件的结果,返回null
*/
public <E> E findOneByCustomized(Class<E> clazz, QueryParam... params);
/**
* 通过查询条件,返回唯一查询的对象,如果有多个满足查询条件的结果,返回第一个
*/
public <E> E findFirstByCustomized(Class<E> clazz, QueryParam... params);
/**
* 查所有对象,如查找所有的用户:
* List<User> allUsers = commonManager. findByCustomized(User.class);
*/
public <E> List<E> findByCustomized(Class<E> clazz);
/**
* 按条件查找对象,如找出enabled为1的用户
* List<User> users = commonManager.findByCustomized(User.class, param("enabled", OP.equal, 1));
*/
public <E> List<E> findByCustomized(Class<E> clazz, QueryParam... params);
/**
* <pre>
* 按条件查找对象,把排序参数放在前面,方便后面的查询参数可加任意个
* 用法:List<User> users = commonManager.findByOrderCustomized(User.class, asc("id"), param("enabled", OP.equal, 1), param("status", OP.equal, 1));
*/
public <E> List<E> findByOrderCustomized(Class<E> clazz, QueryOrder order, QueryParam... params);
/**
* 按条件查找对象,可传多个查询参数和多个排序参数
*/
public <E> List<E> findByCustomized(Class<E> clazz, List<QueryParam> params, List<QueryOrder> orders);
/**
* <pre>
* 按hql条件查找对象, hqlparams传入查询条件
* 用法:List<User> users = commonManager.findByCustomizedParamHQL(User.class, " enabled = 1 and status = 1 " );
*/
public <E> List<E> findByCustomizedParamHQL(Class<E> clazz, String hqlparams);
/**
* <pre>
* 按sql条件查找对象, sqlparams传入查询条件
* 用法:List<User> users = commonManager.findByCustomizedParamSQL(User.class, " enabled = 1 and status = 1 " );
*/
public <E> List<E> findByCustomizedParamSQL(Class<E> clazz, String sqlparams);
/**
* <pre>
* 完整的sql查询
* 用法:List<User> users = commonManager.findByCustomizedFullSQL(User.class, " select t.* from tb_app_user t where t.enabled = 1 ");
*/
public <E> List<E> findByCustomizedFullSQL(Class<E> clazz, String fullsql);
/**
* <pre>
* SqlQeury查询
* 用法:List<User> users = commonManager.findByCustomizedSqlQeury(sqlQeury);
*/
public <E> List<E> findByCustomizedSqlQeury(SqlQeury sqlQeury);
/**
* <pre>
* 完整的hql查询
* 用法:List<User> users = commonManager.findByCustomizedFullSQL(User.class, " from User t where t.enabled = 1 ");
*/
public <E> List<E> findByCustomizedFullHQL(Class<E> clazz, String fullsql);
/**
* <pre>
* 返回long类型的唯一结果
* 用于max,min,count等语句
*/
public long findLongUniqueResultSQL(String sql);
/**
* <pre>
* 带分页的完整的hql查询
* 用法:Page pager = commonManager.findPageByCustomizedFullSQL(pageNumber, pageSize, User.class, " from User t where t.enabled = 1 ");
*/
public <E> Page<E> findPageByCustomizedFullHQL(int pageNum, int pageSize, Class<E> clazz, String hql);
/**
* <pre>
* 带分页的完整的sql查询
* 用法:Page pager = commonManager.findPageByCustomizedFullSQL(pageNumber, pageSize, User.class, " select t.* from tb_app_user t where t.enabled = 1 ");
*/
public <E> Page<E> findPageByCustomizedFullSQL(int pageNum, int pageSize, Class<E> clazz, String sql);
/**
* <pre>
* 带分页的SqlQeury查询
* 用法:Page pager = commonManager.findPageByCustomizedSqlQeury(pageNumber, pageSize, sqlQeury);
*/
public <E> Page<E> findPageByCustomizedSqlQeury(int pageNum, int pageSize, SqlQeury sqlQeury);
/**
* <pre>
* 带分页查询,可传多个查询参数和排序参数,用法:
* List<QueryParam> params = new ArrayList<QueryParam>();
* params.add(param("name", OP.like, name));
* List<QueryOrder> orders = new ArrayList<QueryOrder>();
* orders.add(asc("id"));
* Page pager = commonManager.findPageByCustomizedFullSQL(pageNumber, pageSize, User.class, params, orders);
*/
public <E> Page<E> findPageByCustomized(int pageNum, int pageSize, Class<E> clazz, List<QueryParam> params, List<QueryOrder> orders);
/**
* <pre>
* 带分页查询,把排序参数放在前面,方便后面的查询参数可加任意个
* 用法:Page pager = commonManager.findPageByOrderCustomized(pageNumber, pageSize, User.class, asc("id"), param("name", OP.like, name), param("remark", OP.like, name));
*/
public <E> Page<E> findPageByOrderCustomized(int pageNum, int pageSize, Class<E> clazz, QueryOrder order, QueryParam... params);
/**
* <pre>
* 带分页查询,可传多个查询参数
* 用法:Page pager = commonManager.findPageByCustomizedFullSQL(pageNumber, pageSize, User.class, param("name", OP.like, name));
*/
public <E> Page<E> findPageByCustomized(int pageNum, int pageSize, Class<E> clazz, QueryParam... params);
分享到:
相关推荐
结合给定的标签"TypeScript",我们可以推断该项目是以TypeScript作为主要编程语言来构建的,这是一种静态类型的JavaScript超集,提供了更严格的类型检查和更好的开发工具支持。 在微服务架构中,每个服务都是独立...
请实现最接近的CommonManager 方法来找到距离两个员工最近的经理(即离CEO 最远的)。 您可以假设所有员工最终都会向 CEO 汇报。 树结构: 比尔 -> 多姆、萨米尔、迈克尔Dom -> 鲍勃、彼得、波特彼得 -> 米尔顿,...
1. **API接口设计**:API(Application Programming Interface)是一组预定义的函数、类、对象和协议,为开发者提供了构建软件的工具。Sakai Common Manager API 设计了一系列接口,使得开发者可以方便地管理和控制...
《FastSpring 手冊》是关于FastSpring框架的配置与使用的指南,主要涵盖了Spring容器的配置、对象的定义以及核心业务的实现。在本手册中,我们可以看到几个关键的配置部分,包括DAO层的父对象定义、密码加密对象、...
在给出的示例中,我们有三个具体的职责类:CommonManager、Majordomo和GeneralManager,它们都继承自抽象职责类Manager。每个经理级别的角色(即具体职责类)可以处理不同级别的请求,如批准请假或加薪。Manager类...
private NumberManager commonManager = new NumberManager(); private NumberManager expressManager = new NumberManager(); private NumberManager VIPManager = new NumberManager(); // 方法:获取不同...