我的系统是Tomcat5.0+mysql5.0+Linux为何过一晚上之后,第二天早上打开网站时总报java.lang.NullPointerException 这样的错误,重启tomcat后就没问题了.第二天还是这样.在网上找了一下,好像说是MYSQL有个最大连接时长,超过8小时不用的话,数据库会自动断开,后将Tomcat中的connectionTimeout改为了0,但问题依然存在.这时我远程登录数据库是可以的,这是不是说明并不是数据库关闭的问题呀?请高手指点一下.谢谢!
调试欢乐多
{
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://localhost:3306/tablename?user=root&password=123456";
conn=DriverManager.getConnection(url);
/*
Context initCtx = new javax.naming.InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/tablename");
System.out.print(ds);
conn=ds.getConnection();
*/
}
//返回一个连接
哥们我原来用的是下面注释掉的链接,比你频率低,隔几天就出现你的情况,现在我用上面这个,就没什么问题!
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=gbk",
"root", "1234");我现在发现只要是重启mysql后,就会出现上面的情况,需要将数据库连接类重新编译上传才可以,但类文件是一个字都没改.百思不得其解,搞了一天了,也没明白怎么回事,还请高手指点.
public static Connection getConnection() {
Connection con = null; try {
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=gbk",
"root", "1234");
} catch (Exception e) {
e.printStackTrace();
} return con;
}}