小知识

1.处理返回值为List的方法

	@Override
	public List<T> getByIds(Long[] ids) {
		if (ids == null || ids.length == 0) {
			return java.util.Collections.EMPTY_LIST;
		}
		getSession().createQuery(
				"from " + clazz.getSimpleName() + " where id in(:ids)")
				.setParameterList("ids", ids);
		return null;
	}

 

因为专业,所以这么做。

2.POI中通用数据格式处理

private static String getCellValue(Cell c) {
		String str = null;
		switch (c.getCellType()) {
		case Cell.CELL_TYPE_BLANK:
			str = "";
			break;
		case Cell.CELL_TYPE_BOOLEAN:
			str = String.valueOf(c.getBooleanCellValue());
			break;
		case Cell.CELL_TYPE_FORMULA:
			str = String.valueOf(c.getCellFormula());
			break;
		case Cell.CELL_TYPE_NUMERIC:
			str = String.valueOf(c.getNumericCellValue());
			break;
		case Cell.CELL_TYPE_STRING:
			str = c.getStringCellValue();
			break;
		default:
			str = null;
			break;
		}
		return str;
	}

 

select sv.ip,max(sv.visitDate) as visitDate from SiteVisit sv group by sv.ip

    HibernateDTO处理:

    1.调用SQLQuery

    2.如果是Oracle数据库需要添加addScalar(String name)方法,将字段还原回对象中的字段名。

    代码:

   

	public List<SiteVisit> findList() {
		// 之前的查询语句from SiteVisit s order by s.visitDate desc
		return this
				.getSession()//这里是SQLQuery
				.createSQLQuery(
						"select ip as ip,max(visitDate) as visitDate from jc_site_visited  group by ip")
						.addScalar("ip")//Oracle数据库会自动将字段名转换为大写,如果不添加这个方法会报Property not found异常
						.addScalar("visitDate")
						//Transformers没什么说的,被转换为的DTO对象
				.setResultTransformer(Transformers.aliasToBean(SiteVisit.class))
				.list();
	}

 EL表达式的/是可以带小数点的。

 

${6.3/2 }

 

会输出3.15

你可能感兴趣的:(小知识)