当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

主要类说明 CommonManager

发表于: 2015-03-23   作者:dejish   来源:转载   浏览次数:
摘要: com.gzza.framework.iservice.CommonManager类,封装了通用的实体类增删改查的方法。 /** * 执行sql更新语句, 可用于执行一条update或delete语句 */ public int executeUpdateFullSql(String sql); /** * 执行hql更新语句, 可用于执行一条update或delet
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);

主要类说明 CommonManager

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
每当在SQLServer中创建一个数据库,便会在硬盘上产生三个类型的文件,我们可以说,数据库由下列有三
每当在SQLServer中创建一个数据库,便会在硬盘上产生三个类型的文件,我们可以说,数据库由下列有三
时间有限,简单快速的完成本篇博客……(很多问题在此就不细说清楚了,主要还是记录一下成果。) *
类继承图: CCLayer 是CCNode的子类 ,实现了TouchEventsDelegate接口,继承了CCNode所有的特性,并
个人笔记:参考汤姆大叔的MVC之前那些事系列整理 client端发送页面请求,被IIS的某个进程截获,它根
首先是类结构: 可以看到CCNode 几乎是游戏中处理的大部分类的父类,其主要有以下函数: virtual in
Apache lucene提供的功能大体可以看作是给一些资料建成索引, 再根据搜索词搜索出资料中一些内容。
1-Cocos2d-x目录结构 Cocos2d-x的目录结构如下: 目录的具体结构介绍如下: Box2D:物理引擎Box2D的
netty 是一个一基于NIO跟事件模型驱动和Pipes And Filter的框架。运行时的几个主要的类: # Bootsta
软件行业的三类主要盈利模式 1 合同项目模式 合同项目模式是指:甲方(客户方)和乙方(开发方)签
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号