日期:2014-05-18  浏览次数:20599 次

webwork+hibernate
大侠们看看哪里不合适啊,
这段程序在网上放着   tomcat+mysql   隔段时间就登陆不了了,重启tomcat就没事了
为什么啊,哪里的错,,

String   sql= "from   TUser   where   username= ' "+uf.getUsername()+ " ' ";
List   userlist=dao.findlist(sql, " ");

//查询方法
public   List   findlist(String   sql,String   whsql)   throws   HibernateException   {
Session   sess   =   null;
List   list   =   new   ArrayList();
try   {
sess   =   HibDb.getSession();
Query   q1   =   sess.createQuery(sql);
list   =   q1.list();
return   list;
}
catch   (Exception   e)   {
e.printStackTrace();
}
finally   {
if   (sess   !=   null)
HibDb.closeSession(sess);
}
return   null;
}


//连接数据库的类

------解决方案--------------------
空值,好好检查你的查询方法
------解决方案--------------------
上边很显然是报的空指针异常,但是楼主说是“隔段时间就登陆不了了,重启tomcat就没事了”
原因:数据库没有连上造成的
如何找到问题所在:
1、tomcat的连接池设置的大一点(如果是配置的tomcat连接池)。
2、1上边的方法还不是很好,时间长了还是会出现同样问题。
3、出现的根本原因:
1)数据库的连接没有关闭。(程序员找到每一个关系到数据库连接的地方查找数据库是否关闭)
2)数据库连接了但是由于用户长时间请求,导致连接没有办法被垃圾回收处理(定时清理)。