一个方法功能是根据传入的hql语句返回符合条件的记录数。
方法一和方法二各有优劣,各位能说说区别吗?
方法一: List lis=new ArrayList();
//Session session = this.getSession();
//System.out.println("<<<<<.ppppppp"+session.isOpen());
System.out.println("<<<<<.ppppppp"+hql_count);
Query query = this.getSession().createSQLQuery(hql_count).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);
List list = query.list();
String count = ((HashMap)list.get(0)).get("REGINO").toString();
int rowcount = Integer.parseInt(count);
System.out.println("rowcount>>>>>>>>>>>>>>>>>>>>>>>>"+rowcount);
//session.close();
return rowcount;
}方法二
public int getRowcountByNativeSql(final String hql_count){
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(hql_count).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);;
List list = query.list();
return list;
}
});
String count = ((HashMap)list.get(0)).get("REGINO").toString();
int rowcount = Integer.parseInt(count);
return rowcount;}
方法一和方法二各有优劣,各位能说说区别吗?
方法一: List lis=new ArrayList();
//Session session = this.getSession();
//System.out.println("<<<<<.ppppppp"+session.isOpen());
System.out.println("<<<<<.ppppppp"+hql_count);
Query query = this.getSession().createSQLQuery(hql_count).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);
List list = query.list();
String count = ((HashMap)list.get(0)).get("REGINO").toString();
int rowcount = Integer.parseInt(count);
System.out.println("rowcount>>>>>>>>>>>>>>>>>>>>>>>>"+rowcount);
//session.close();
return rowcount;
}方法二
public int getRowcountByNativeSql(final String hql_count){
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(hql_count).setResultTransformer(
Transformers.ALIAS_TO_ENTITY_MAP);;
List list = query.list();
return list;
}
});
String count = ((HashMap)list.get(0)).get("REGINO").toString();
int rowcount = Integer.parseInt(count);
return rowcount;}
而你的第二种是用内部类实现的
其实你用第一种就可以了 第二种只是在你不能获得session的情况下 是进内部类获得session对象 在来处理查询 现在基本上session可以直接获得的
第二种显而易见要麻烦