2、主要类说明 CommonManager
二、主要类说明 CommonManager
com.gzza.framework.iservice.CommonManager类,封装了通用的实体类增删改查的方法。
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); /** * 更新一个实体对象 */ 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);