新手求助
各位大侠:
帮忙看看以下一个方法的代码,为什么总是提示没有返回值。
public ArrayList gettickeyinfo(String _trainN) throws SQLException
{
try
{
ary=new ArrayList();
tickeyInfo tickeyinfo;
open();
ps = con.prepareStatement("select * from TrainTickey where trainNo=?");
ps.setString(1,_trainN);
rs=ps.executeQuery();
while(rs.next())
{
tickeyinfo=new tickeyInfo();
tickeyinfo.setTrainN(rs.getString(1));
tickeyinfo.setSeatNum(rs.getInt(2));
tickeyinfo.setBedNum(rs.getInt(3));
tickeyinfo.setSeatPrice(rs.getFloat(4));
tickeyinfo.setBedPrice(rs.getFloat(5));
ary.add(tickeyinfo);
}
return ary;
} catch (SQLException ex)
{
}finally
{
rs.close();
ps.close();
con.close();
}
}
[解决办法]
楼主想象的太过于理想话了,如果在try里出现了异常,那么就将转到catch块,而你的catch块里,没有任何的return,当然不能编译了。
要么return 一个值,要么抛出一个新异常
catch (SQLException ex) { // return null; throw new SQLException(); }
[解决办法]
访问数据库的时候,会遇到很多意想不到的问题,比如:数据库访问出错,网络连接中断等等。
另外,在关闭ResultSet,Statement,Connection等的时候,最好先判断一下是否null,不是null才关闭。
if(rst != null){ try{ rst.close(); }catch(SQLException sqle){ sqle.printStackTrace(); } }