下面是hibernate中dao层中的一个实现查询的方法,其中我有两个地方不懂List<Person> list=nuu这句的含义是什么?2、list=(List<Person>)query.list();这句又说的是什么意思?
备注:Person是一个类
public List<Person> listAllPersons()
{
Session session= HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
List<Person> list=null;
try{
Query query=session.createQuery("from Person");
list=(List<Person>)query.list();
tx.commit();
}
catch(Exception ex)
{
if(null !=tx)
{
tx.rollback();
}
}finally{
HibernateUtil.close(session);
}
return list;
}
备注:Person是一个类
public List<Person> listAllPersons()
{
Session session= HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
List<Person> list=null;
try{
Query query=session.createQuery("from Person");
list=(List<Person>)query.list();
tx.commit();
}
catch(Exception ex)
{
if(null !=tx)
{
tx.rollback();
}
}finally{
HibernateUtil.close(session);
}
return list;
}
list=(List<Person>)query.list();当然是查出来的数据
如果把 List<Person> list=(List<Person>)query.list()放到try catch 里面再 return list 是会报错的
2、list=(List<Person>)query.list(); -- 这是查询声明是不会报异常的,因此声明要放在try的外面,这样return时,才不会不认识这个变量。
首现该方法的返回值是个
List<Person> 因此你就需要在方法的末尾返回一个Person的泛型集合,好,有了这个需求,那么就是里面的构建并且返回List<Person>了 ,首现的List<Person> list=null;然后在Try里面list=(List<Person>)query.list();这样子有什么好处呢?比方说:如果你数据查询中出现错误了、那么list就为null并且返回,如果能查到那么就把查到的数据赋值给list然后返回。总的来说方法的末尾此时都有了返回,并且都还是合法的返回,即:都是返回List<Person>,要么为null要么有数据!