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