数据查询中 IN关键字的使用方法总结
2013-05-17 15:48
465 查看
第一种(在hql语句中的where条件中拼接好in的内容):
第二种(在如下回调中使用list类型参数):
List<TUmUserrole> roleList = hibernateDao.queryObjectsByWhere( TUmUserrole.class, wherePart, parmaters.toArray(), sortField, null, null); String rolesStr = "";// 所有rolepid组合字符串 if (null != roleList && roleList.size() > 0) { // userrole不为空时,取到所有的rolepid ,根据所有rolepid去rolelimits表中找所有的limits for (TUmUserrole userRole : roleList) { if (rolesStr != "") rolesStr += ","; rolesStr += "'" + userRole.getRolepid() + "'"; } } user.setRolepid(rolesStr); String limitsStr = ""; if (StringUtil.notEmpty(rolesStr)) { parmaters.clear(); wherePart = " ROLEPID IN ( " + rolesStr + " ) "; wherePart += " AND STATUS = ? "; parmaters.add(ISuperVO.STATUS_ACTIVE); sortField = " UPDATEDATETIME DESC"; List<TUmRolelimits> limitList = hibernateDao .queryObjectsByWhere(TUmRolelimits.class, wherePart, parmaters.toArray(), sortField, null, null);
第二种(在如下回调中使用list类型参数):
List orgList = null; StringBuffer wherePart = new StringBuffer(); List<Object> parmaters = new ArrayList<Object>(); //指定区域查询 if (StringUtil.notEmpty(entity.getAreaCode())) { wherePart.append("arCd = ?"); parmaters.add(entity.getAreaCode()); } orgList = this.hibernateDao.queryObjectsByWhere(Healthorgreg.class, wherePart.toString(), parmaters.toArray(), null, null, null); List tempList = new ArrayList(); for(int i=0;i<orgList.size();i++){ Healthorgreg healthOrgReg = (Healthorgreg) orgList.get(i); tempList.add(healthOrgReg.getOrganizationCode()); } // List resultList = null; StringBuffer wherePart1 = new StringBuffer(); List<Object> parmaters1 = new ArrayList<Object>(); // 指定机构代码查询 wherePart1.append("belongOrgCode in(:typeids)"); parmaters1.add(tempList); resultList = this.hibernateDao .queryObjectsByWhere(Hospitalassets.class, wherePart1.toString(), parmaters1.toArray(), null, null, null);
@SuppressWarnings("unchecked") public List queryObjectsByWhere(Class cl, String wherePart, Object[] parmaters, String sortField, Integer startRow, Integer rowCount) throws DaoException { try { if (cl == null) { throw new DaoException(DaoExceptionType.TYPE_CODE_PARAM_NULL, "vo is not null"); } String hql = "from " + cl.getName() + " where 1=1 "; if (wherePart != null && wherePart.trim().length() > 0) { hql = hql + " and " + wherePart; } if (sortField != null && sortField.trim().length() > 0) { hql = hql + " order by " + sortField; } return queryObjectsByHQL(hql, parmaters, startRow, rowCount); } catch (Exception e) { throw new DaoException(DaoExceptionType.TYPE_CODE_DAO, e); } }
@SuppressWarnings("unchecked") public List queryObjectsByHQL(final String HQLStr, final Object[] parmaters, final Integer startRow, final Integer rowCount) throws DaoException { try { List list = getHibernateTemplate().executeFind( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(HQLStr); if (startRow != null && startRow.intValue() >= 0 && rowCount != null && rowCount.intValue() >= 0) { query.setFirstResult(startRow); query.setMaxResults(rowCount); } if (parmaters != null && parmaters.length > 0) { for (int i = 0; i < parmaters.length; i++) { if((parmaters[i]) instanceof List){ List tempList = (List) parmaters[i]; query.setParameterList("typeids", tempList); }else{ query.setParameter(i, parmaters[i]); } } } List list = query.list(); return list; } }); return list; } catch (Exception e) { throw new DaoException(DaoExceptionType.TYPE_CODE_DAO, e); } }
相关文章推荐
- Android 中使用rawquery方法查询指定数据的一些方法总结
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- Laravel使用Caching缓存数据减轻数据库查询压力的方法
- 数据查询时几个关键字(IN、OR、EXIST)的效率分析
- PB数据窗口使用数组参数执行SQL的IN方法[转]
- 【C#小知识】C#中一些易混淆概念总结---------数据类型存储,方法调用,out和ref参数的使用
- ThinkPHP 中 M 方法查询数据库最后使用 find() 导致返回结果集 foreach 数据不对的问题
- mysql中使用FIND_IN_SET查询在逗号隔开的字符串中符合多个ID的数据
- 【mysql】find_in_set 和 in 混合使用查询数据紊乱
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
- 预处理数据的方法总结(使用sklearn-preprocessing)
- 如何使用沃顿研究数据中心(WRDS,CRSP)查询美股历史交易数据(R语言的调用方法以及代码示例)
- 难点总结:Jquery动态加载数据库中的数据(解答人:郭哲 方式:讲述jquery原理及一些函数的使用方法,学会看帮助文档)
- 使用aggregate在MongoDB中查询重复数据记录的方法
- js 关键字 in 的使用方法
- JavaScript中关键字 in 的使用方法详解
- extern关键字使用方法总结
- Symfony2使用Doctrine进行数据库查询方法实例总结
- js 关键字 in 的使用方法