日期:2014-05-17  浏览次数:20779 次

声明了返回值却报错没有返回
本帖最后由 QQ1184318016 于 2013-03-04 12:54:24 编辑
	public User getUser(int id){
Connection conn  =null;
Statement stmt = null;
ResultSet set = null;
try{
//得到连接
conn = JdbcUtils.getConnection();
//得到发送对象
stmt = conn.createStatement();
//发送sql语句
String sql = "select * from User where id = "+id;
set = stmt.executeQuery(sql);
if (set.next()){
User user  = new User();
String name = set.getString("name");
String password  = set.getString("password");
String email = set.getString ("email");
String birthday = set.getString("birthday");
SimpleDateFormat sdf  = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(birthday);

BeanUtils.setProperty(user, "id", id);
BeanUtils.setProperty(user, "name", name);
BeanUtils.setProperty(user, "password", password);
BeanUtils.setProperty(user, "email", email);
BeanUtils.setProperty(user, "date", date);

return user;
}
return null ;
}catch (Exception e){
new DaoException(e);
}finally{
JdbcUtils.release(conn, stmt, set);
}
}

------解决方案--------------------
首先你的java样式没用上。
其次不抛异常的时候有返回值,抛异常的时候呢?
要么就把return 语句放到最后finally里面
------解决方案--------------------
User user  = new User();定义在if (set.next()){外部,不然每次都创建新的user了